之前一切功能都正常,2020年的某一天,突然之間就有問題了,啥也沒動。感覺似乎哪一次瀏覽器升級之后,就不行了。很奇怪的一件事兒。
把代碼放出來,請大神指點迷津。萬分感謝!
var Wparent = window.parent.document,
tipBg = "<div class='tip_bg'></div>",
tipBox = "<div class='tip_box'></div>",
//=====關閉彈出窗
function Tipclose(){
$(".tip_box",Wparent).remove(); //移除新增的外層className
$(".tip_bg",Wparent).remove(); //移除新增的背景className
}
//=====提交資料并改變彈窗內容
$(".submit").click(function(){
var link=opts.linkHref,
that=$(this);
if(validform().form()) {
that.prop("disabled","disabled");
$.ajax({
type:"post",
url:opts.formUrl,
data:$(opts.formId).serialize(),
success:function(msg){
var successTxt = "<p class='del_info'>操作成功</p><div class='tip_btnbox'><button class='btn btn_success tip_close'>確認</button></div>";
Tipclose();
$("body",Wparent).append(tipBg);
$("body",Wparent).append(tipBox);
$(".tip_box",Wparent).append(successTxt);
Success(link);
that.removeAttr("disabled");
},
error:function(errormsg){
var errorTxt = "<p class='del_info'>操作失敗,請重試</p><div class='tip_btnbox'><button class='btn btn_dsure tip_close'>確認</button></div>";
Tipclose();
$("body",Wparent).append(tipBg);
$("body",Wparent).append(tipBox);
$(".tip_box",Wparent).append(errorTxt);
Success();
that.removeAttr("disabled");
}
});
}else {
//校驗不通過,什么都不用做,校驗資訊已經正常顯示在表單上
}
});
//=====成功提示
function Success(obj){
$(".tip_box:last",Wparent).css({"width":"400px","height":"180px","margin-top":"-90px","margin-left":"-200px","z-index":"198611060"});
$(".tip_close",Wparent).on("click",function(){
Tipclose();
if(obj!=null||obj!=undefined){
$("body",Wparent).find("iframe").prop("src",obj);
}else{
$("body",Wparent).find("iframe").prop("src",$("body",Wparent).find("iframe").prop("src"));
}
});
}
問題出在Success里面的$(".tip_close",Wparent).on("click",function()這個位置,點擊按鈕無法執行,也就是點按鈕沒有反應。這個DIV是動態生成的,也不知道具體該怎么處理了。
試著改過這里的代碼:$(".tip_box",Wparent).on("click","tip_close",function(),不行
又改為:$("body",Wparent).on("click","tip_close",function(),還是不行
補充一下:jquery-2.2.1.min.js
uj5u.com熱心網友回復:
只能說,你打打斷點,慢慢排查了。
uj5u.com熱心網友回復:
先看這里://=====提交資料并改變彈窗內容
$(".submit").click(function(){
這里不是提交資料么,你先確保是執行到這里,然后如果執行到這里了,這句加click方法才能生效
$(".tip_close", Wparent).on("click", function () {
uj5u.com熱心網友回復:
遇到問題為什么不打開控制臺,console.log來除錯呢?uj5u.com熱心網友回復:
submit提交沒有問題。我現在是把一個頁面,用iframe的方式呼叫出來到一個DIV里面,然后提交這個iframe,處理資料之后,再關閉掉,回到父頁面,如果單獨把這個iframe里面的頁面打開,提交沒有問題,可以正常執行,但是放到框架父頁面上來打開,就不行了。之前一直都是可以正常關閉的,就2020年的時候某一個時間,突然不行了。
uj5u.com熱心網友回復:
原因我也搞不清楚,看你代碼不是異步系結的問題。可能是瀏覽器安全策略?的原因。
建議重構代碼,“用iframe的方式呼叫出來到一個DIV里面”做一個彈出框,顯示隱藏或者新建關卡關閉關卡。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/256571.html
標籤:JavaScript
