2013-05-20 56 views
1

的innerHTML的,我不知道很多JavaScript,但有一件事的香港專業教育學院認識是這樣做的編寫JavaScript例如document.getElementById功能

function example() 
{ 
document.getElementById("example").innerHTML="<script>document.write(example)</script>" 
} 

不工作!我明白這一點,但有沒有其他方法可以做同樣的事情呢?

+2

頁面加載後也不能使用'document.write'。那麼你可以,它只是要炸掉這個頁面,並把它變成一個新的。 – epascarello

+1

**爲什麼**要**在元素中編寫** * JavaScript代碼*?具體來說,這個代碼所在的函數是什麼? – Ian

+0

,因爲我需要在用戶輸入後添加內容,這會激活該功能。它需要JavaScript,因爲它的變化,我想要添加 –

回答

2

這種方式爲我工作:

<body> 
    <div id="main"> 
    </div> 

    <script> 
    // create a script element 
    var script = document.createElement('script'); 
    // fill its inner html with js code 
    script.innerHTML = 'alert("Javascript");' 
    // add it inside your target div and then profit! 
    document.getElementById('main').appendChild(script); 
    </script> 
</body> 

編輯: 我發現更多關於在這裏你的問題,我建議你閱讀的問題,它有很多有用的答案的,它也解釋了爲什麼你第一種方法沒有奏效:Can scripts be inserted with innerHTML?

使用此代碼後,頁面加載可能這樣做才能寫一個div內部數據的簡單方法香草:

<html> 
<head> 
    <script> 
     window.onload = function() { 
      var script = document.createElement('script'); 
      script.innerHTML = 'alert("Javascript");' 
      document.getElementById('main').appendChild(script); 
     } 
    </script> 
</head> 
<body> 
    <div id="main"> 
    </div> 
</body> 
</html> 
+0

我可以使用這種方法讓它在頁面加載後寫入div嗎?它似乎沒有工作 –

+0

是的,你可以,再次檢查我的答案,我已經添加了額外的代碼 – BBog

+1

真棒問題和答案,節省了我很多時間寫MVC視圖內的JavaScript對象的chartjs。 –

-1

你的腳本有兩個錯誤。這是行不通的,因爲變量名和函數名等於div id,並且這種錯誤的方法適用於javascript。你寫了一個代碼給你的div,但你不運行它。你可以嘗試一下;

<div id="mydiv"></div> 
<script> 
function example() 
{ 
document.getElementById("mydiv").innerHTML = eval("document.write('lololo')"); 
} 
example(); 
</script> 
+0

這個工作,但用值覆蓋頁面。我希望價值作爲div的innerhtml –