2013-02-14 81 views
0

後修改CSS什麼是用於修改CSS 後的JavaScript函數建立一個div正確的標記?我熟悉使用jquery的.css()然而,我不知道如何創建一個事件處理程序,當js完成加載其資源。 JavaScript的來自第三方的,看起來像這樣 - 這也創造了恐怖的內嵌樣式:正確標記爲JavaScript onclick事件

<script type="text/javascript"> 
function jsfunction(){ 
    var x = (content); 
    var y = document.createElement("script"); 
    js.setAttribute("language", "javascript"); 
    js.setAttribute("type", "text/javascript"); 
    js.setAttribute("src",x + "scriptUrl"); 
    document.getElementsByTagName("head").item(0).appendChild(js); 
} 
if (window.attachEvent) {window.attachEvent("onload", jsfunction);} 
else if (window.addEventListener) {window.addEventListener("load", jsfunction, false);} 
else {document.addEventListener("load", jsfunction, false);} 
</script> 
+1

該代碼不修改CSS,它將一個全新的樣式表連接到文檔。這是你的意思嗎? – Blazemonger 2013-02-14 15:28:44

+0

該代碼不僅添加了新的樣式表,而且還爲您提供pure-JS事件偵聽器,您可以使用該事件偵聽器更改加載後的元素。如果他們可以修改jsfunction來添加回調,那麼你可以把你的代碼放在那裏。 – 2013-02-14 15:31:39

+0

d_either,你能舉個例子嗎?這就是我正在問的如何去做。我只是不知道如何附上我的代碼。我將使用這個:'$( 「#divname」)的CSS({ '寬度': '100%', '位置': '相對'});' – user2062244 2013-02-14 16:38:10

回答

0

你可以試試這個,它會覆蓋現有的jsfunction(假設你不能讓第三方來改變它),應用它,然後存在你的CSS改變代碼。由於jsfunction已經綁定到文檔加載,它應該執行。

請記住,這不是測試,我不知道文件裝載是否會使用這個覆蓋了原來的,但它是值得一試。

// Keep a reference to the older function. 
var old_jsfunction = jsfunction; 

// Redefine jsfunction 
jsfunction = function() { 
    old_jsfunction.apply(old_jsfunction, arguments); 

    $("#divname").css({'width': '100%', 'position': 'relative'}); 
}; 
+0

不幸的是,它並沒有爲我工作。 :-(也許這是因爲正在從腳本生成的DIV這個函數是拉動? – user2062244 2013-02-14 21:37:29

+0

有沒有什麼辦法可以讓第三方修改jsfunction的交付? – 2013-02-15 02:08:37