我有一个php脚本,它在我的服务器上传mp3文件。我使用'uploadify'。有一个事件'onSelect'(documentation),在上传文件时调用。使用它我想在每个文件上传后动态刷新播放列表。
但是我在'onselect'字段中的函数会抛出错误'unterminated string literal'。经过长时间的搜索,我将我的单行函数改为多行(为了方便起见,这里添加了分隔线)并在双引号之前添加斜杠。
function() {$('#response').append("
<script type=\"text/javascript\">
var flashvars = {url:'./media/audio/users/126/md6xs4cv8ks0.mp3',artist:'Undef', track:'Undef', duration:''};
var Params = {};
var attributes = {};
swfobject.embedSWF(\"min.swf\", \"myAlternativeContent1\", \"320\", \"40\", \"9.0.0\", false, flashvars, params, attributes);
</script>
<div id="myAlternativeContent1">
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
</div>
答案 0 :(得分:5)
与其他答案相反,字符串文字可以包含换行符,只需要使用反斜杠进行转义:
var string = "hello\
world!";
但是,这不会在字符串中创建换行符,因为它必须是显式的\n
转义序列。从技术上讲,这将成为helloworld
。做
var string = "hello"
+ "world"
会更清洁
答案 1 :(得分:2)
您帖子中突出显示的语法清楚地表明:您的<div>
块中有未转义的引号(并且您忘记了脚本的结尾)。
无论如何,Javascript中的字符串文字不能跨越多行。
而不是:
alert("lol
wtf");
写:
alert("lol" +
"wtf");
您可能还会考虑拆分</script>
子字符串which has been known to cause parsing problems:
"</scr" + "ipt>"
(严格地说,为了相同,上面的第二个例子在\n
之后会有一个lol
和一些空格,但在编写HTML标记的情况下这并不重要。 )功能
答案 2 :(得分:0)
可能是</script>
的存在。尝试转义一个或多个这些字符(即改为使用<\/script>
)