我正在嘗試使用JQuery/AJAX更新/插入新標記。在腳本標記中找到的URL是來自另一個域(Web服務器)的URL,我無法控制它。 Web服務器提供的結果在iframe中返回(同樣,我無法控制響應的格式)。問題使用JQuery/AJAX更新/插入<script>標記
我已經嘗試了以下兩種解決方案(請注意,單擊按鈕僅用於測試目的)。
第一解決方案:
$(document).ready(function() {
$("button").click(function() {
var NewScript = document.createElement('script');
NewScript.type = 'text/javascript';
NewScript.src = 'http://www.contactedurl.com/query&callback=?';
$("#TDiv").append(NewScript);
});
});
第二解決方案:
$(document).ready(function() {
$("button").click(function() {
var NewScript = document.createElement('script');
NewScript.type = 'text/javascript';
NewScript.src = 'http://www.contactedurl.com/query&callback=?';
var script = document.getElementsByTagName('script')[0];
script.parentNode.insertBefore(NewScript, script);
});
});
這兩種解決方案的產生下面的警告消息,從而不執行更新:
甲從異步加載的外部腳本調用document.write()被忽略了。
我明白爲什麼會生成此消息的原因,以及爲什麼不執行更新,但我無法找到任何解決此限制或替代解決方案的方法。
我想知道是否有人會知道替代解決方案。
謝謝。
凱文喜一的Ajax簡寫爲。感謝您的時間和答覆。正如您已經證實的那樣,在嘗試了幾種解決方案並進行了一些閱讀之後,我得出結論說我沒有朝着正確的方向前進。不過,我認爲應該有一種替代方式來動態更改腳本Tag中的源URL,否? – JF0001
問題不在於更改網址,問題在於腳本正在做什麼。 document.write()將完全替換文檔,如果它在文檔關閉後執行(發生在文檔*「就緒」*時,這就是爲什麼它必須同步執行。 –