Взгляните на getComputedStyle ()
Это не проверено, но код будет выглядеть примерно так:
var someOtherElement = document.getElementById('blah');
var style = window.getComputedStyle(document.getElementById('myId'), '');
for (var i in style) {
if (style.hasOwnProperty(i)) {
someOtherElement.style[i] = style[i];
}
}
Это будет работать только (ну, это , вероятно, вообще не будет работать, но основная идея этого будет работать только) с Firefox, но так как вы сказали, что используете greasemonkey, я предполагаю это тебя не касается.
Я думаю, что мой мозг не работает должным образом этим утром - но в любом случае, вот кое-что, что работает, но хитроумно. Просмотрите стили элемента, который вы копируете, с на .
var s = window.getComputedStyle(document.getElementById('myElement'), null);
var someOtherElement = document.getElementById('someOther');
for (var i in someOtherElement.style) {
try {
someOtherElement.style[i] = s[i];
} catch (e) { }
}
Как я уже сказал, мой мозг не работает, а вышесказанное изворотливо. Объект style
имеет свойства length
и parentRule
, которые доступны только для чтения, что делает его умирающим, следовательно, try / catch.