1

我正在使用 jquery load 来加载另一个包含 js 代码的 html 页面,并且要知道传递了什么值。

var code = 1000
$('#content').load('forward.html?entity=' + code );

到目前为止:我在 forward.html 中有一个函数,类似于:

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 (entity)不会给我预期的值,但什么也没有,因为这个函数正在从原始调用页面读取参数字符串,(或者在 URL 地址框中的任何内容)。

有人可以让我知道如何解决这个问题吗?有没有按预期检索参数?任何 JQuery 函数可以做到这一点?

4

1 回答 1

0

如果将 forward.html 制作成 php 文件,您可以轻松地将 $_GET 参数添加到元素,然后使用 javascript 检索它。所以

转发.php

<?
 echo 'YOUR CONTENT TO BE LOADED
 <div id="passed-data" class="hidden" entity="'.$_GET["entity"].'"></div>';
?>

或 forward.jsp

YOUR CONTENT TO BE LOADED
<div id="passed-data" class="hidden entity="<%= request.getParameter("entity") %>"></div>

并在首页

$('#content').load('forward.html?entity=' + code, function(){
    // entity now becomes code. so you could just do var entity = code;
    var entity = $("#passed-data").attr("entity");
});

或者只是使用 user1 指出的值。您在将 html 作为 var 代码加载时使用它。

于 2013-09-26T14:33:25.877 回答