一、子頁面調用父頁面的方法
var value=window.external.CallParentFunc("ParentFunName(Arguments);");//父頁面的JS函數有返回值
window.external.CallParentFunc("ParentFunName(Arguments);");//父頁面的JS函數無返回值
二、是否需要傳遞參數(子頁面關閉窗口的同時刷新父頁面爲例)
1、無參數
子頁面
//子頁面窗口關閉後調用父頁面的refresh函數
function ClosePage() {
window.external.CallParentFunc("refresh();");
window.external.close();
}
父頁面
//假設父頁面有一個自動刷新頁面的js函數
function refresh(){
window.location.href="index.jsp";
}
2、有參數
子頁面
//子頁面窗口關閉後調用父頁面的refresh函數
function ClosePage() {
var value = 'zhangsan';
window.external.CallParentFunc("refresh('" + value + "');"); //一定要注意參數拼接
window.external.close();
}
父頁面
//假設父頁面有一個自動刷新頁面的js函數
function refresh(value){
alert(value);
window.location.href="index.jsp";
}
注意:如果參數有中文,需要編碼兩次,在解碼
子頁面
//子頁面窗口關閉後調用父頁面的refresh函數
function ClosePage() {
var value =encodeURI(encodeURI('張三'));
window.external.CallParentFunc("refresh('" + value + "');"); //一定要注意參數拼接
window.external.close();
}
父頁面
//假設父頁面有一個自動刷新頁面的js函數
function refresh(value){
value = decodeURI(value);
alert(value);
window.location.href="index.jsp";
}
轉載:https://blog.csdn.net/wqqqianqian/article/details/128011442