2014-11-21 74 views
0
<script type="text/javascript"> 
var randomnumber=Math.floor(Math.random()*10000); 
var sr = 'http://www.example.com/example.js?rnd='+randomnumber; 
document.write("<script type=\"text/javascript\" src=\"" + sr + "\" id-value-test=\"100\" > </script>"); 
</script> 

未終止的字符串文字在id-value-test。任何想法?問題在javascript屬性值

+0

有更好的辦法OS這樣做 - 不過,最簡單的就是使用嵌套引號替換''''和'''''document.write(「」 );' – karthikr 2014-11-21 16:38:39

+1

@karthikr:是的,但嵌套引號不是問題。 :-) – 2014-11-21 16:41:02

回答

7

在做的HTML解析,瀏覽器不解析JavaScript的,所以他們停在第一</script>序列,他們發現  —即使是在一個字符串文字或JavaScript註釋。

爲了避免它,只是做任何事情打斷</script>在你的字符串,如:

<script type="text/javascript"> 
var randomnumber=Math.floor(Math.random()*10000); 
var sr = 'http://www.example.com/example.js?rnd='+randomnumber; 
document.write("<script type=\"text/javascript\" src=\"" + sr + "\" id-value-test=\"100\" > <\/script>"); 
<!-- Change is here -----------------------------------------------------------------------------^ --> 
</script> 

<script type="text/javascript"> 
var randomnumber=Math.floor(Math.random()*10000); 
var sr = 'http://www.example.com/example.js?rnd='+randomnumber; 
document.write("<script type=\"text/javascript\" src=\"" + sr + "\" id-value-test=\"100\" > </" + "script>"); 
<!-- Change is here ----------------------------------------------------------------------------^ --> 
</script>