0
所以我正在做一個iframe發佈消息到父頁面。 iframe的內容發送寬度和高度的POST消息,並在收到消息後抓住這些元素以更改元素的樣式。然而,每當我這樣做,twitter引導正在改變元素的風格(我只能假定它是一個時間問題)。CSS Twitter引導覆蓋JavaScript樣式,因爲它在腳本之後執行。如何最後執行腳本?
我試着包裝消息監聽器的功能,但代碼從未執行。這就是:
window.addEventListener("message", function(event) {
window.onload = function() {
console.log("loaded");
var array = event.data.split(" ");
addStyle(document.getElementById("outer-frame-form"),
['height', 'width', 'position', 'overflow'],
[array[0],array[1],'relative','hidden'],
true);
}
});
function addStyle(element, properties, values, important) {
// this will be run when the whole pa
var i;
var cssString = "";
for (var i=0; i<properties.length; i++)
{
//remove previously defined property
if (element.style.setProperty)
element.style.setProperty(properties[i], '');
else
element.style.setAttribute(properties[i], '');
cssString += properties[i] + ':' + values[i] + ((important) ? ' !important' : '') + '; '
console.log(properties[i]);
}
//insert the new style with all the old rules
element.setAttribute('style', element.style.cssText + " " + cssString);
}
我可以使用哪些其他的方式來等待,所有的CSS加載後執行腳本,因此Twitter的引導將無法覆蓋它?謝謝!
它是,高度和寬度仍然被覆蓋。 –