此脚本工作正常,除非包含的文件包含javascript,然后它会中断“未终止字符串”文字错误。删除空格和换行符并不能解决问题。
<script type="text/javascript">
var myArray = [
'url',
'url2',
'url3',
'url4',
'url5',
];
var i, numDomains = myArray.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>
一个好的解决方案是包含的文件可以是任何普通的html文件。
这是违规文件的输出:
<!-- 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
答案 0 :(得分:3)
如果file1.php
或file2.php
输出任何包含未转义'
个字符或换行符的内容,则会产生您收到的消息。
尝试从违规文件中删除所有换行符,其输出如下所示:
<!-- 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">
答案 1 :(得分:1)
从此行删除最后一个逗号:
var myArray = [ 'url', 'url2', 'url3', 'url4', 'url5', ];
/* ^ */
答案 2 :(得分:0)
如果包含文件中有换行符,则会导致错误。例如:
var a = "abc
adada"; // may cause error