jquery 使用 div 时 load() 获取参数时出现问题

jquery load() problems getting parameters when using div

我不是 html、jquery 或 javascript 专家,我在尝试检索通过 [=77 传递到子 html 页面的参数时遇到问题=] .load() 我希望有人能帮助我。

先介绍一下背景: 我的主要 html 页面 index.html 有一个 div,ID 为 PageContent。单击主页中的菜单项时,主页会将任何其他 html 页面作为主页的子页面加载到此 div 中。

在我的 html 我有

<div id="PageContent"></div>

在主页面javascript文件时某select一个菜单项如下

onclick=''callPage(document.getElementById("subPage1").href, 
            "{user:'" + ipUserId + "'}");''

我们调用下面的代码

function callPage(stPageLink, stPageParams) {
    $("#PageContent").load(stPageLink, stPageParams);
    ...
}

在 subpage1.html 中,我想将传递的参数(用户)的值分配给文本字段 txt1,就像在 url 中发送的值一样。
示例:

<input id="txt1" type="text" value="this.document.user.value" >

但是好像不行。
我也试过$("#txt1).val($("#PageContent").attr( 'user' )); 那也不行。
在这两种情况下,页面都会加载但不会检索任何参数。

我花了 1 天时间试图在此站点和其他站点上找到答案,但没有成功。所以如果有人知道是否可以这样做或者可以指出我正确的方向。如果他们可以 post 做点什么,我将不胜感激。

现阶段我想知道使用 iframe 是否更好?

我尝试过的事情:

  1. 我无法执行以下示例,因为它在 chrome.
    中不起作用 $("#PageContent").load(stPageLink +"?userid='usr1');

  2. 我不能使用 window.href,因为我正在使用 load() 并将 html 加载到 div。所以 window.href 将 return "... /index.html" 而不是 "... subpage1.html?user="usr1"

  3. 可惜我不知道php。

$('#mylink').click(function () { 
    $('#PageContent').load("/mypage?user="+$('#txt1').val()); 
});

您可以使用.click(handler)将事件附加到元素; $.param() 将序列化字符串作为 javascript 对象的表示形式传递,在 .ajaxComplete() 上使用 .split()options.url 上重新创建作为序列化字符串传递的对象,设置 [= input 元素的 17=]

function callPage(stPageLink, stPageParams) {
  $("#PageContent").load(stPageLink + $.param(stPageParams))
}

$(document).ajaxSuccess(function(event, jqxhr, options, data) {
  var data = options.url.split("?")[1].split("=");
  var res = {};
  res[data[0]] = data[1];
  $("#txt1").val(res[data[0]]);
})

$("button").click(function() {
  var ipUserId = "abc";
  callPage(document.getElementById("subPage1").href + "/?", {
    user: ipUserId
  })
})

jsfiddle https://jsfiddle.net/re44fzr6/

我想通了。答案太明显了,我看不出来。在我的父程序中,我创建了以下两个共享变量。

var array1 = [];
var array2 = [];

我在 jquery.load 中遇到的问题是我犯的一个错误。以下作品 函数调用页面(stPageLink){ getArrayParams(stPageLink); $("#PageContent").load(stPageLink) }

onclick=''callPage(document.getElementById("LoginMenu").href + '?user=' + ipUserId);''

我遇到的问题 jquery .loadbefore 是因为我做了下面的垃圾。 onclick=''callPage(document.getElementById("LoginMenu").href + '?user="' + ipUserId + '"');'

然后我创建了一个函数来将每个参数对解析为相关数组。 这行得通。谢谢你们的帮助。仅出于您的提示,我不会看到它。