2010-12-08 103 views
3

我有自己的DIV野生動物園的ReferenceError:找不到變量

<script> 
function newfunc() 
{ 
alert("here"); 
} 
</script> 
<button type="button" onclick="newfunc()">Press me</button> 

在IE下和FF它工作正常,但在Safari(至少Safari瀏覽器4.0.5),它說:「可以的ReferenceError找不到變量「 - 現在內容被動態加載到DIV中,看起來Safari無法在DIV中看到函數定義 - 但是,如果將函數newfunc()放到主HTML頁面上(即不在DIV中)然後按下按鈕會調用該功能。

就好像Safari沒有看到添加到DIV的Javascript函數。

任何幫助,將不勝感激。被動態地添加到頁面

亞當

+0

如果是這種情況,您希望我們做什麼?你唯一的選擇是把JS代碼放在主體中。告訴我們您的服務器端代碼是什麼語言,發佈您當前的代碼,我們將盡力引導您完成此操作。 – 2010-12-08 13:31:11

回答

5

的Javascript需要是EVAL-d,以便正確地初始化。

爲了正確地爲函數定義工作,它們需要以不同的方式進行格式化。例如:

<script> 
newfunc = function() 
{ 
alert("here"); 
} 
</script> 
<button type="button" onclick="newfunc()">Press me</button> 

將內容添加到DIV後,從DIV中提取所有標記元素並評估它們的內容。

例如,使用PrototypeJS(http://www.prototypejs.org/api/):

$(divid).innerHTML.evalScripts(); 

哪裏DIVID是你剛纔填入的內容div的ID。