开发者

Javascript code, unterminated string literal with included javascript

This script works fine, unless the included file contains javascript, then it breaks with the "unterminated string" literal error. Removing spaces and linebreaks does not cure the problem.

<script type="text/javascript">
var myArray = [
'url',
'url2',
'url3',
'url4',
'url5',
];
var i, numDomains = m开发者_StackOverflowyArray.length, found = false;
for (i = 0; i < numDomains; i++) {
if (document.referrer.indexOf(myArray[i]) > -1) {
found = true;
}
}
document.write((found ? '<?php include("file1.php"); ?>' : '<?php include("file2.php"); ?>'));
</script>

A good solution would be where the included file can be any normal html file.

This is the output of the offending file:

<!-- google_ad_client = "pub-0705348955426556";/* ORG 468x60 */ google_ad_slot =     "2106718798";google_ad_width = 468;google_ad_height = 60;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><script src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></scri


If file1.php or file2.php output anything with un-escaped ' characters or line breaks, this would cause the message you're getting.

Try removing all line breaks from the offending file, its output looks like this:

 <!-- google_ad_client = "pub-0705348955426556";/* ORG 468x60 */ google_ad_slot = "2106718798";google_ad_width = 468;google_ad_height = 60; --><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script<script src="http://googleads.g.doubleclick.net/pagead/test_domain.js">


Remove last comma from this line:

var myArray = [ 'url', 'url2', 'url3', 'url4', 'url5', ];
/*                                                   ^ */


If there are line breaks in the include files, that causes error. For example:

var a = "abc
adada"; // may cause error
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜