我是一个完整的JavaScript / jQuery n00b,所以请提前原谅我。
想象一下,有一个网页(W1
)显示了一个项目列表(I1
,I2
,...)。现在有第二个网页W2
在FancyBox'ed W1
(iframe
)中显示<a class="iframe" href="addressof(W1)">Pick items</a>
。
W1
中的每个项目都有一个JavaScript处理程序附加到其click
事件,执行此操作:
function SetOpenerClient(id, name,isHoldings)
{
var _hfBackPath = document.getElementById('ctl00_main_hfBackPath');
var url = _hfBackPath.value;
window.navigate(url +"?id="+id+"&name="+name+"&isHol="+isHoldings);
}
通常使用这个混乱的方法是window.open()
一个窗口并提供一个“后路”:
window.open(addressof(W1) + "?backpath=" + addressOfHandlerThisWebSite,
"selectClient",
"status=no,toolbar=no,menubar=no,location=no,scrollbars=yes")
现在我的调查显示了。每当用户点击W1
内的某个项目时,它都会回到backpath
(_hfBackPath
SetOpenerClient()
),这恰好是一个特制的页面,可以抓取id
1}} querystring参数,将其填入Session
内并执行各种其他操作。
在W1
内打开iframe
时,Chrome会抱怨:
Uncaught TypeError:Object [object DOMWindow]没有方法'navigate'
这就是我想要的(顺便说一下,你的椅子上有50美元的钞票),我真的希望这是可能的。我想“重新定义”window.navigate
方法,以便我可以手动处理项目选择。这可能吗?我天真的尝试设置
DOMWindow.navigate = function () { alert("window.navigate"); };
显然不做任何事情。