2010-06-04 119 views
1

这里有一个有趣的JS q ...假设你有:从外部脚本访问外部脚本的位置对象

host1.html上host1.com在host2它引用的外部JavaScript(host2.js) .COM。在host2.js中,我想获取host2.js的主机的location.hostname,但由于在host1.html中调用host2.js,它将返回host1的location.hostname。

有没有办法让外部脚本的位置对象在被调用的外部脚本中?

回答

1

我认为以前有类似的问题,而答案总是否定的,这是不能做到的。

解决方法:

  • 通过父文档的script元素,并使用一个计数器变量工作,找出我们在(啊)

  • 输出当前URL 进入哪一个包括在服务器端的脚本,例如在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资源等方面的影响。