2011-01-23 74 views
0

字符串:responseText的包含JavaScript代碼和代碼不加載

<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=6..."></script> 

來自一個XMLHttpRequest()請求,並且由PHP生成,然後被寫入到與javascipt的一個新的窗口,但腳本未加載。儘管源代碼包含該字符串,該窗口仍會空白。

它可能是一個編碼問題?

該字符串是'echo recaptcha_get_html($ publickey)'的結果,其中是由recaptcha腳本提供的PHP函數。

+3

你可以添加一個鏈接到一個例子或其他東西,並可能重寫問題的標題?這不是很多現在! – 2011-01-23 16:18:35

+0

你確定它不被視爲文本而不是HTML源代碼嗎?也許你正在做`newWindow.appendText(response)`而不是`newWindow.appendHTML(response)`? – Crozin 2011-01-23 16:20:27

回答

1

通過設置.innerHTML創建腳本標記通常不會導致正在執行的腳本。有一些例外情況,比如在IE瀏覽器的腳本標籤上設置了「延遲」屬性,但通常情況下可能不是這樣。 (我不確定「async」屬性會做什麼,我可以看到async =「true」,導致腳本以這種方式工作,但我沒有測試過。)

雖然是完全工作的創建元素(「腳本」),然後在其上設置.src,並將其填充到DOM的某處。它不僅會加載並運行它,而且在很多情況下,它會異步執行(而常規腳本標記會阻止頁面加載的其他部分),這通常更好。