昨天遇到了一個問題,就是在用window.open開啟的視窗中增加一個超串連,當點這個串連時候要把父視窗的內容跳轉到另一個頁面,後面終於解決此問題,現在特來與大家分享下。
1.為了方便整個工程使用,我特意將這個方法寫成了一個js檔案。
// JScript 檔案
function pageClass(o) {
for (x in o) this[x] =o[x];
this.open = function () {
var pageBody = $$("pageBody");
var pageTitle = $$("pageTitle");
this.prevPage = pageBody.page;
//if (pageBody.page&&this.loc==pageBody.page.loc) {
// return;
//}
if (this.inherit) {
this.loc = (pageBody&&pageBody.page?(pageBody.page.loc + "^"):"") + this.loc;
delete this.inherit;
}
pageTitle.innerText = this.loc.replace(//^/gi,"->");
window.open("about:bland","pageBody","",true);
window.open(this.url,"pageBody","",true);
pageBody.page = this;
}
}
2.在父視窗中添加一個用戶端function
如:
註:需要在父視窗中先載入剛才建立的js檔案,此處的參數id是傳入的某條資料的id,如果沒有可以不加
function openrRedirect(id) {
new pageClass({url:"test.aspx?id=" + id,loc:"title"}).open();
}
3.最後在了視窗中就可以添加<a>超串連了,只要直接調用父視窗的這個方法就可以了。
<a href="#"onclick="javascript:opener.openrRedirect.call(opener,id);/"></a>