ie8出现了这个问题
<script>
var url = 'http://a.com';
</script>
<script type="text/javascript" src="new_js/index.js?version={{ $version }}"></script>
我要在index.js里面接受这个url的变量。但是在IE里面报错。
这个url我需要使用PHP的变量来进行传递的。所以无法直接在index.js里面直接使用
ie8出现了这个问题
<script>
var url = 'http://a.com';
</script>
<script type="text/javascript" src="new_js/index.js?version={{ $version }}"></script>
我要在index.js里面接受这个url的变量。但是在IE里面报错。
这个url我需要使用PHP的变量来进行传递的。所以无法直接在index.js里面直接使用
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
虽然一般而言认为服务器端语言可以“替代HTML输出的任何部分”,但由于以下原因,使用后端语言直接输出
<script>
中的可变代码是绝对不允许的:<script>
标签可能会被PHP捕获,产生PHP这一层能够解析的意义。请尝试以下不推荐的写法:<script language="php"> echo "this statement is parsed by php. "; </script>
事实上在ASP中也有类似的现象。
后端服务器语言传递内容给前端JS的正确方法,是使用HTML的标签搭桥。PHP将内容放到HTML的某个标签中,从而保持只输出HTML的职责范围不变。前端JavaScript从HTML结构中取出所需的数据即可。
例如SegmentFault就将当前登录用户的ID和声望值,输出到了HTML
<head>
的<meta>
标签中供JS使用。事实上借助<meta>
标签也多多少少是一种惯例了。SegmentFault的HTML代码如下:JavaScript部分打开控制台,自行输入以下代码试验即可: