使用Javascript获取URL参数

时间:2014-04-02 19:43:50

标签: javascript html

您好我的HTML中有以下标记:

<script type="text/javascript" src="http://XX/teste1.php?BLABLABLA"></script>

在teste1.php中是否有一些内容,使用JS来检索参数BLABLABLA?如果我使用window.location.href,我会得到index.php的位置(当然),但是我需要使用JS而不是PHP来获取发送到外部资源的参数。

4 个答案:

答案 0 :(得分:4)

我想我明白你的意思。看看以下小提琴。

http://jsfiddle.net/gK58u/2/

您可以看到我在jQuery中手动加载,然后从脚本声明中获取src

===================

HTML 在脚本声明中添加id

<script id="jquerysrc" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js?key=test"></script>

<强>的Javascript

$(document).ready(function() {
    var scriptsource = "";
    scriptsource = $("#jquerysrc").attr("src");
    alert(scriptsource);
});

这将允许您查看外部js文件来自的URL。这是正确方向的重点。

答案 1 :(得分:1)

你可以尝试这个,而不使用jQuery。

var scripts = document.getElementsByTagName('script'),i,src;

for(i=0;i<scripts.length;i++){
   src = scripts[i].src;
   if (src && src.indexOf('?')>=0){
       console.log(src.substring(src.indexOf('?')+1));
   }   
}

答案 2 :(得分:0)

似乎你不明白PHP和JS如何协同工作。 Php生成HTML(也许是JS和CSS)。然后,当客户端加载此html时,JS就会被执行。

要在PHP或JS中获取它,您可以使用正则表达式或修改从?BLABLABLA?key=BLABLABLA的网址。在PHP中,“BLABLABLA”将存储在$ _GET ['key']


编辑:

我误解了你的问题。

来自“How to retrieve GET parameters from javascript?”:

-------------------------

使用window.location对象。此代码为您提供没有问号的GET。

window.location.search.replace( "?", "" );

-------------------------

从您的示例中,它将返回BLABLABLA

window.location DOC


EDIT2:

在teste.php中生成Javascript时,您应该这样做:

$str = "";
foreach ($_GET as $key => $value) {
    $str = $key;
}
echo "var getParam = ".$str.";";

如果你不知道给出了什么,我看不出如何避免foreach。您可能必须重建参数字符串(“?xxx = sss&amp; ddd = zz ...”)

现在JS变量getParam应该包含BLABLABLA

阿波罗

答案 3 :(得分:0)

目前,JavaScript没有用于此目的的任何内置功能。您正在谈论的内容,即 BLABLABLA 被称为查询字符串。哪个被攻击到URL以创建动态网页(根据条件更改内容)

第一种方法

是获取整个URL,然后用空字符串替换URL,依此类推,只获取最后一个元素。

第二种方法

Another answer发布了一个函数(自定义函数,而不是builtIn函数)。在其中将参数传递给方法,该方法为您获取参数值。这也很容易理解。

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

要调用此功能,请使用getParameterByName('prodId')。在函数或变量中使用它,你就可以了。

相关问题