这是一个有趣的JS q ...假设你有:
host1.com上的host1.html引用了host2.com上的外部javascript(host2.js)。在host2.js中,我想获取为host2.js提供服务的主机的location.hostname,但是因为在host1.html中调用了host2.js,它会返回host1的location.hostname。
有没有办法在外部脚本中调用外部脚本的位置对象?
答案 0 :(得分:1)
我认为之前已经提出了类似的问题,答案总是不行,这是不可能做到的。
解决方法:
完成父文档的script
元素,并使用计数器变量找出我们所在的元素(呃)
将当前网址输出到服务器端的附带脚本,例如用PHP:script_current_url = <?php echo "http://".$_SERVER["HTTP_HOST"]."/".$_SERVER["REQUEST_URI"]
(协议部分也有变量,我只是忘了名字)
在每个<script>
标记之前设置变量:
<script type="text/javascript">
script_current_url = "http://www.example.com/include.js";
</script>
<script type="text/javascript" src="http://www.example.com/include.js">
</script>
这很麻烦,但可以通过构建包含文件的JS函数并自动设置正确的变量来简化。
我最喜欢服务器端方法,但根据您的平台,它还有其他含义,例如必须通过资源昂贵的解释器发送所有.js
资源。