为什么document.write(“...”)会破坏我的代码?

时间:2011-11-06 00:02:03

标签: javascript html

我正在努力获得以下Javascript工作(它应该是来自formstack.com的嵌入式调查,显示在特定日期)。但是,当我尝试查看它时,我显示的是字符串(不带引号)“');}”出了什么问题?

<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>

4 个答案:

答案 0 :(得分: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 :(得分:2)

字符串中没有</script>标记,结束了脚本标记。

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

答案 2 :(得分:0)

我听说过javascript无法在document.write中执行的故事...尝试分解它:

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

(删除的标志越多越少,你应该知道放在哪里)

答案 3 :(得分:-1)

我想知道/是否被视为逃脱角色。你可以尝试的东西是

String s = @“....”其中....是文本。

@告诉编译器将“s中的所有内容视为文字。我知道这适用于C#和Java。我不是100%肯定javascript。