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 是否更好?
我尝试过的事情:
我无法执行以下示例,因为它在 chrome.
中不起作用
$("#PageContent").load(stPageLink +"?userid='usr1');
我不能使用 window.href,因为我正在使用 load() 并将 html 加载到 div。所以 window.href 将 return "... /index.html" 而不是 "... subpage1.html?user="usr1"
可惜我不知道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 + '"');'
然后我创建了一个函数来将每个参数对解析为相关数组。
这行得通。谢谢你们的帮助。仅出于您的提示,我不会看到它。
我不是 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 是否更好?
我尝试过的事情:
我无法执行以下示例,因为它在 chrome.
中不起作用$("#PageContent").load(stPageLink +"?userid='usr1');
我不能使用 window.href,因为我正在使用 load() 并将 html 加载到 div。所以 window.href 将 return "... /index.html" 而不是 "... subpage1.html?user="usr1"
可惜我不知道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 + '"');'
然后我创建了一个函数来将每个参数对解析为相关数组。 这行得通。谢谢你们的帮助。仅出于您的提示,我不会看到它。