【问题标题】:jQuery get query string from it's own (self) linkjQuery从它自己的(自我)链接获取查询字符串
【发布时间】:2017-03-08 05:31:01
【问题描述】:

是否可以有这样的 javascript 链接(注意查询字符串):

  <script type = "text/javascript" src = "/js/myScipt.js?v=3"></script>

然后在 myScript.js 中使用 jQuery 获取 v 的值? javascript 答案也可以,但首选 jQuery。提前致谢!我到处搜索,我能找到的只是与获取 URL 中查询字符串的值有关的问题,但不是来自它自己的链接。

【问题讨论】:

  • &lt;script&gt; 元素的src 中包含?v=3 的预期结果是什么? “然后在 myScript.js 中使用 jQuery 获取 v 的值?” myScript.js?v=3 做了什么?
  • 也许它在某些条件语句中使用了 v 的值,这取决于 v 是什么而产生不同的影响。这比每次都编辑 myScript.js 来硬编码 v 的值更容易。
  • @natel 谢谢,那个链接很有帮助

标签: javascript jquery hyperlink query-string


【解决方案1】:
//to set script do some thing like this
var version = 3;
document.write('<script type = "text/javascript" src = "/js/myScipt.js?v='+version+'"></script>');
//or 
$("body").append('<script type = "text/javascript" src = "/js/myScipt.js?v='+version+'"></script>');


//to get v from myscript.js
var getV = document.currentScript.src.split("?v=")[1];
// var getV =  $('script').last().attr("src").split("?v=")[1];

【讨论】:

  • 有道理,但你为什么要这样设置脚本,而不是像我在原始帖子中的示例那样直接插入链接?
  • 没有理由只是例子
  • 我以为你会说这是一个安全问题
  • 其实你可能没有理由需要让 src 动态化,仅此而已
  • 啊,明白了。有道理,但就我而言,没有必要这样做。我更多地考虑在多个站点上使用脚本,但不希望它在每个站点上做完全相同的事情。我宁愿只向脚本传递一个查询字符串,也不愿在每个站点上的每个脚本副本中设置值,并且周围有 10 个不同版本的脚本。我将您的答案标记为正确,因为它对我来说最容易理解。谢谢!
【解决方案2】:

调用脚本时没有理由通过链接传递信息。该 JavaScript 将在调用后运行。肯定有更好的方法来做你想要完成的事情。

这样的事情可能会给你一个想法。

 var value;
$("script").each(function(){

var temp = "v=";
If(this.src.indexOf(temp) > -1 )) > -1){

get last digits before "&" if any exist.
And after the index of temp var.
}
});

【讨论】:

  • 有点困惑 - 那么如何获取查询字符串的值并将其分配给变量?
  • 使用 split 函数解析即可。所以 this.src.split("?v=")[1];
  • 你的意思是this.src.indexOf(temp) &gt; -1不是(temp.indexOf(this.src)) &gt; -1
猜你喜欢
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-23
相关资源
最近更新 更多