有没有办法在外部javascript文件中,可以知道文件的主机?
例如,如果我有网站http://hostOne.com/index.php
,则文件index.php
的代码:
<html>
<head>
<script type="text/javascript" src="http://hostTwo.com/script/test.js"></script>
</head>
<body>
<div>...</div>
</body>
</html>
我需要在文件test.js
中知道主机http://hostTwo.com
。
谢谢。
修改
或者它可以知道被称为?的标签“script”,使用此选项我可以分析标签并获取“src”属性。但我不想依赖文件test.js
的名称,并分析包含该网站的所有标记script
。
* 基于@Armi *
代码的解决方案HTML:
<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script id="idscript" type="text/javascript" src="http://hostTwo.com/script/test.js"></script>
</head>
<body>
<div>...</div>
</body>
</html>
JS中的代码
var
url = $('head').find('#idscript').attr('src'),
host = url.replace(/(\/\/.*?\/).*/g, '$1');
console.log(host);
答案 0 :(得分:1)
我有一个想法(基于jQuery的片段):
var yourScriptTag = $('head').find('script[src$="jquery-1.7.1.js"]').eq(0);
var theHostnameOfYourScript = $(yourScriptTag).attr('src').replace(/(http:\/\/.*?\/).*/g, '$1');
alert(theHostnameOfYourScript);
jsfiddle示例:http://alpha.jsfiddle.net/XsJn8/
如果您知道脚本的文件名(如果它始终相同且唯一),您可以使用此代码段获取主机名。
如果此路径是相对路径(并且不包含主机),则可以使用简单的location.hostname
答案 1 :(得分:0)
抱歉,不可能。下载脚本的内容,然后触发它。此时剧本“认为”他在你的网站上。
当然除非主机在脚本中被硬编码。
答案 2 :(得分:0)
在test.js中,您可以使用:
var url = document.URL;
然后解析网址结果。
你不能制作跨站点脚本,所以如果你需要更复杂的东西,你可以在php中编写你的javascript并致电:
<script type="text/javascript" src="http://hostTwo.com/script/test.php"></script>
但那并不标准。 无论如何,该解决方案在服务器上,具有设计的代理。
答案 3 :(得分:0)
这是不可能的,因为JavaScript代码是在客户端执行的。你可以以某种方式从你的URL中解析它,但我不认为这是非常有用和可能的。