设置: 到目前为止,我已经能够通过我的 javascript src 成功传递几个已知的 GET 变量,这样客户端 javascript 标记就可以在任何网页上工作,来自任何域,如下所示:
<script id="gbScript" type="text/javascript" src="http://www.mydomain.com/myremoteapp/scripts/gb.js?clientid=50&domain=someclientdomain.com"></script>
但是,现在我需要向源 url 添加一个变量,并且我需要从客户端浏览器中的 url 中获取它。
比如我需要从这个网页地址中抓取“p”的值: http ://www.yourwebsite.com/?p=2
...然后将其添加到我的客户端脚本中的 url 变量字符串中,如下所示:
<script id="gbScript" type="text/javascript" src="http://www.mydomain.com/myremoteapp/scripts/gb.js?clientid=50&domain=someclientdomain.com&p=2"></script>
限制: 我不能使用服务器端代码。那是因为我不知道客户端是否会将此脚本添加到他们的 php 页面、aspx 页面或普通的旧 html 页面中。
我尝试了什么: 我尝试了两个背靠背脚本,第一个创建一个变量,然后尝试在第二个脚本中传递该变量:
<script type="text/javascript">var url = escape(window.location);</script>
<script id="gbScript" type="text/javascript" src="http://www.mydomain.com/myremoteapp/scripts/gb.js?clientid=50&domain=someclientdomain.com&p="+url+></script>
不幸的是,脚本标签的 src 部分似乎不尊重或识别 javascript 变量。此外,在脚本使用的远程或托管页面(即php)上,它根本看不到客户端的 url,更不用说客户端地址的 url 变量了。
已解决: 在远程 gb.js 脚本代码中,我刚刚添加了:
var clientLocation = window.location;
这给了我整个 url,我可以根据需要进行解析。