javascript - IE中 变量传递怎么解决?
伊谢尔伦
伊谢尔伦 2017-04-10 14:50:31
[JavaScript讨论组]

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里面直接使用

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
怪我咯

虽然一般而言认为服务器端语言可以“替代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代码如下:

<meta name="userId" value="1030000000321731" id="SFUserId" />
<meta name="userId" value="13380" id="SFUserRank" />

JavaScript部分打开控制台,自行输入以下代码试验即可:

jQuery('#SFUserId').attr('value'); // "1030000000321731"
天蓬老师

去掉var试试

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号