2011-04-30 50 views
0

有誰知道我可以如何使用腳本標記塊執行來創建document.write?使用腳本標記創建Javascript document.write塊

<script type="text/javascript"> 
    var test = "bad"; 
    document.write('<script type="text/javascript" src="js.php"><\/script>'); 
    console.log(test); 
</script> 

哪裏js.php是

<?PHP sleep(1); echo "var test='good';"; ?> 

的console.log應該輸出 「好」,但它輸出的 「壞」。當然,過了一秒鐘後,這個var會變成「好」,但我絕對需要阻止它。謝謝!!

我有點看到發生了什麼。它看起來像當前腳本塊中的任何document.write實際上在當前腳本塊後被正確寫入

回答

1

執行Ajax調用以加載更多數據。這不太可能是可定製的。你可以用jQuery和JSON輕鬆做到這一點。

+0

但AJAX/XHR始終是非阻塞嗎? – nolanpro 2011-04-30 00:42:05

+0

只有在ajax調用完成後,才能定義回調以啓動腳本。您也可以在發生ajax調用時爲您的網站添加一些「加載」動畫,並在回調中將其刪除。 – Afiefh 2011-04-30 00:51:02

+1

@nolanpro XHR也可以使用XMLHttpRequest對象的(a)同步標誌進行阻塞。這是'open'方法的第三個參數。順便說一下,這就是爲什麼'AJAX'不是XHR的正確名詞的原因之一。 – KooiInc 2011-04-30 05:54:30

2

我似乎記得那裏是一個解決方法寫<script>標籤:

document.write('<scr'+'ipt type="text/javascript" src="js.php"><\/scr'+'ipt>'); 
+0

不幸的是,它仍然無法正常工作。我使用Chrome和Firefox。不過謝謝! – nolanpro 2011-04-30 00:57:27

相關問題