2011-11-06 33 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。

相关问题