2011-11-06 35 views
0

我試圖獲得以下Javascript工作(它應該是來自formstack.com的嵌入式調查,它顯示在特定的日子裏)。然而,當我試圖查看它時,我顯示的是字符串(不帶引號)「');}」什麼是錯的?爲什麼document.write(「... ...</script>」)會破壞我的代碼?

<head> 
<script type="text/javascript"> 

var theDate = new Date(); 
var dayOfWeek = theDate.getUTCDay(); 

// Returns true if the restaurant is open 
function isOpen() 
{ 
    //I'll fill this in later, for now, return true 
    return true; 
} 
</script> 

</head><body> 
<script type = "text/javascript"> 
if(isOpen()) 
{ 
document.write('<script type="text/javascript" src="http://www.formstack.com/forms/js.php?1134414-uqmj2UXxEw-v2"></script>'); 
} 
</script> 
</body> 
+3

不是最描述問題的標題。 ..':/' –

+0

你的文檔類型和html標籤在哪裏? – Shomz

+0

這個作品:http://jsfiddle.net/wYrze/1/ –

回答

2

不要在你的字符串,結束腳本標籤的標籤</script>

document.write('<scr'+'ipt type="text/javascript" src="http://www.formstack.com/forms/js.php?1134414-uqmj2UXxEw-v2"></scr'+'ipt>'); 
+0

那麼,爲什麼你打破'

+0

@JaredFarrish:只是爲了安全起見。它的工作原理很簡單,因爲''不被解釋爲腳本的結束標記。 – Guffa

+0

只是想知道......爲什麼JS將字符串中的腳本標記解釋爲調用語句的結束標記? (這是我認爲你在說什麼,對吧?) –

0

未能內部文件撰寫...執行JavaScript代碼我聽說過的故事試着將它:

document.write("script type = " + "text/javascript" + "src='http://www.formstack.com/forms/js.php?1134414-uqmj2UXxEw-v2'>" + "/script"); 

(且小於刪除的跡象,你應該知道放在哪裏他們)

+2

「你應該知道把它們放在哪裏」 - 嗯? –

2

在SCRIPT元素中不能包含一個包含'</script>'的字符串。考慮加載如下附加腳本:

var script = document.createElement('script'); 
script.src = 'http://www.formstack.com/forms/js.php?1134414-uqmj2UXxEw-v2'; 
document.body.appendChild(script); 

您的首選JavaScript庫可能包含一個專用的函數。舉例來說,我使用jQuery,它就像這樣做:

$.getScript('http://www.formstack.com/forms/js.php?1134414-uqmj2UXxEw-v2'); 
-1

我想知道/是否被看作是轉義字符。你可以嘗試的東西是

String s = @「....」其中....是文本。

的@告訴編譯器把一切「的原義。我知道這工作在C#和Java的。我不是100%肯定的JavaScript。

相關問題