提取外部 javascript 查询字符串/锚点值:file.js#foo=bar

发布于 2024-08-29 17:49:14 字数 253 浏览 4 评论 0原文

http://mycloud.net/js/file.js#foo=bar

我正在尝试加载跨域 javascript 文件,并希望在查询字符串上传递变量。我已经看到使用了上面的“#”方法,但不确定如何从 file.js 中提取“foo”值。有什么线索如何在没有服务器端帮助的情况下处理这个问题吗?

谢谢。

http://mycloud.net/js/file.js#foo=bar

I'm trying to load a cross domain javascript file, and want to pass a variable along on the query string. I have seen the above '#' method used, but am unsure of how to extract the 'foo' value from within the file.js. Any clues how to handle this without the aid of server side help?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南风起 2024-09-05 17:49:14

好吧,实际上有一种方法可以获取当前 script,例如:

// external script
(function () {
  var scripts = document.getElementsByTagName('script'),
      currentScript = scripts[scripts.length - 1],
      scriptUrl = currentScript;

  alert("scriptUrl: " + scriptUrl);
})();

上面的方法有效,因为在执行 script 元素时,是 DOM 的最后一个 script 元素 (scripts[scripts.length - 1])。

然后,您只需对 scriptUrl 进行字符串操作即可提取 GET 参数。

查看此处的示例,外部脚本为此处

Well, there is actually a way to get the current script, e.g.:

// external script
(function () {
  var scripts = document.getElementsByTagName('script'),
      currentScript = scripts[scripts.length - 1],
      scriptUrl = currentScript;

  alert("scriptUrl: " + scriptUrl);
})();

The above works because at the moment when the script element is being executed, is the last script element of the DOM (scripts[scripts.length - 1]).

Then you have only to make string manipulation on your scriptUrl to extract the GET parameters.

Check an example here, and the external script is here.

风追烟花雨 2024-09-05 17:49:14

脚本获取书签中的值的唯一方法是以某种方式在文档中找到它的 script 标记,并从 scr 属性中提取它。

URL 的书签部分不会在请求中一起发送,因此您也无法使用服务器端代码获取它。

The only way for the script to get hold of the value in the bookmark, would be to somehow find it's script tag in the document and extract it from the scr attribute.

The bookmark part of the URL isn't sent along in the request, so you can't pick it up using server side code either.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文