2010-06-04 223 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資源等方面的影響。