我的网站在 iframe 弹出窗口中打开文章。我的问题是表单的输入字段(在手机和平板电脑上)在这个弹出页面上不起作用。
例如,当用户想在评论区写东西时,触摸输入区不起作用,输入表单没有被激活。 这几天我一直在寻找这个问题的解决方案,但我还没有成功。
尽管在另一个站点上,我看到一个用户遇到了几乎相同的问题,并且网页设计公司提供了解决方案,您可以在我的附图中看到。
现在我在我的网站上发现了一些类似的代码,但由于我不是 JavaScript 程序员,所以我不知道如何更改我的代码。 如果您了解 javascript,您可能知道如何以正确的方式更改“我的代码”?或者如果您知道解决此问题的任何其他方法?
这是我的代码:
//function check iframe popup load to resize
function ifmOnload(){
if(this.src == 'about:blank'){
return;
}
$(document.body).addClass ('popupview-loaded');
var doc = this.contentDocument ? this.contentDocument : window.frames[this.id].document,
ifm = this;
if (doc.readyState && doc.readyState != 'complete'){
return;
}
if (doc.body && doc.body.innerHTML == "false"){
return;
}
this.height = $(doc).height();
if(window.popupIscroll){
window.popupIscroll.destroy();
}
window.popupIscroll = new iScroll('popup-inner', {vScrollbar: true, hScrollbar: false, scrollbarClass: 'popupTracker', useTransform: false, scroller: (isTouch ? doc.getElementById('container') : null) });
if(isTouch){
$(doc).bind('touchmove.scroll', function(e){
e.preventDefault();
});
}
if($.browser.webkit || $.browser.safari ||$.browser.opera || $.browser.mozilla || ($.browser.msie && $.browser.version >= 9)){
$(doc).bind('mousewheel.iscroll', $.proxy(window.popupIscroll._wheel, window.popupIscroll));
} else if($.browser.msie && $.browser.version < 9){
var script = doc.createElement('script');
script.src = JADef.tplurl + 'js/scrollevent.js';
doc.body.appendChild(script);
}
$(doc.body).find('a').each(function(){
if($(this).attr('target') != '_blank'){
$(this).attr('target', '_parent');
}
});
};
我必须提一下,我只在“Iframe Popup”和“移动设备”中遇到这个问题。 如果我在新窗口(没有弹出窗口)或 PC 中打开文章,我看不到这个问题。