我想讓自己開始使用jsFiddle。所以我試圖運行一個包含所有HTML,CSS和JavaScript代碼的簡單代碼片段。jsFiddle onload並且在主體中沒有換行
JavaScript不工作,如果我選擇在框架&擴展下拉的onLoad
但它確實工作時,我選擇不換行 - 從下拉列表中
燦你告訴我這意味着什麼。我已經在SO上讀過這個問題JavaScript not running on jsfiddle.net
但是無法理解那裏提到的解決方案。
我想讓自己開始使用jsFiddle。所以我試圖運行一個包含所有HTML,CSS和JavaScript代碼的簡單代碼片段。jsFiddle onload並且在主體中沒有換行
JavaScript不工作,如果我選擇在框架&擴展下拉的onLoad
但它確實工作時,我選擇不換行 - 從下拉列表中
燦你告訴我這意味着什麼。我已經在SO上讀過這個問題JavaScript not running on jsfiddle.net
但是無法理解那裏提到的解決方案。
當使用onLoad
時,該函數將不會成爲全局函數,因此您無法直接從HTML調用它。如果它是全球性的 - 就像使用無包裝時一樣 - 它可以工作。
的onLoad
產生類似的東西:
window.onload = function() {
function myFunction() {
}
}
所以,myFunction()
纔可見直接在匿名函數關閉。
當你選擇onLoad時,你的JavaScript包裝了一個onload函數。這意味着代碼將在頁面加載完成後運行,但在全局範圍內不再可用。它看起來像這樣
window.onload=function(){
function myFunction() {
alert("Hello");
}
}
一種解決方法可能是讓它們在頁面上的任何地方訪問變量賦值給window
對象。
例如:
function myFunction() {
alert("Hello");
}
window.myFunction = myFunction;
和
<button onclick="window.myFunction()" >Hi</button>
看看結果iframe中看到的差異的來源。也許這個解釋更清晰:http://stackoverflow.com/a/5830423/218196 –