从使用JQuery load()函数调用的页面获取url参数

时间:2013-08-04 20:23:05

标签: javascript jquery html ajax

我以前见过这个问题,但我还没有找到合适的解决方案。 问题很简单。 如果我打电话给这样的页面。

div.load('page?foo=bar');

我希望能够以某种方式检索foo,并在页面调用的javascript中使用它。但我只能获得父母网址的参数。

我知道我可以在父javascript代码中声明变量,但这不是我喜欢的方式。

所以我真的希望有人能解决这个问题。

♥你们这些人

2 个答案:

答案 0 :(得分:2)

你可以使用这样的东西来解析URI: http://blog.stevenlevithan.com/archives/parseuri

然后您可以从父页面轻松访问参数:

// Set the link that we want to load/examine
var link = 'page?foo=bar';

// Load the link content (as per your code)
div.load(link);

// Grab whatever variables we want from the link
var uri = parseUri(link);
var foo = uri.queryKey.hasOwnProperty('foo') ? uri.queryKey.foo : false;
alert(foo);

修改 正如bfavaretto已经评论过的那样,通过AJAX加载的内容只是一个字符串。它不是一个能够识别其URI的页面。

但是,如果您确实希望加载的内容能够访问其URI,只需在内容本身中使其可用即可。例如:

$('#my_div').load('page?foo=bar)

在“page?foo = bar”的内容中:

<div class="container" data-page-uri="{{ insert uri here with php, ruby, whatever }}">
    <!-- my page content -->
</div>

现在,在您加载的内容中,您可以通过使用“data-page-uri”数据属性查找相关div来确定URI。一旦你有了链接,你说你知道如何从中获取参数......

希望有所帮助。

答案 1 :(得分:0)

我认为你有两个解决方案。一,如果页面有一个隐藏的div,需要的数据,第二个,可能是ajax响应对象有调用者URL。你应该研究响应xhr对象。