WordPress干扰JavaScript模态弹窗加载自定义PHP页面问题求助
WordPress干扰JavaScript模态弹窗加载自定义PHP页面问题求助
大家好,我遇到了一个挺头疼的问题,想请各位帮忙分析下:
我的网站是基于WordPress搭建的,但同时也有不少独立的PHP页面,比如我的wiki板块是直接从数据库读取内容生成的。最近我想做一个功能:当鼠标悬停在游戏武器、装备或物品的链接上时,用JavaScript模态弹窗的iframe加载我自己写的entitycard.php页面,展示对应的物品统计信息。这个功能在本地测试时完全正常,可部署到线上后,entitycard.php居然返回了WordPress的“Sorry, no posts matched your criteria”错误页面,实在搞不懂为什么会这样。
我对比了本地和线上的效果,本地能正常加载entitycard.php的内容,线上却弹出WordPress的错误提示。而且直接访问线上的entitycard.php链接也是同样的错误,但这个文件本身只是做数据库连接和内容输出,完全没有引入任何WordPress的代码。
下面是相关的代码和信息,方便大家排查:
问题核心情况
- 本地开发环境功能正常,线上生产环境出现WordPress错误提示
entitycard.php仅包含数据库连接与内容输出逻辑,无任何WordPress相关代码
用到的CSS样式
/* The Modal (background) */ .modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1; /* Sit on top */ left: 0; top: 0; overflow: auto; /* Enable scroll if needed */ background-color: rgb(0,0,0); /* Fallback color */ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ } /* Modal Content/Box */ .modal-content { }
生成悬浮链接与弹窗iframe的PHP代码
... echo "<td><a onmouseover=\"showPopup(this)\" onmouseout=\"hidePopup(this)\" href=\"entity.php?entityid=$entity_id\">$name_with_quantityplusraritystarlevel</a></td>"; ... echo "<div id=\"myModal\" class=\"modal\">"; echo "<div class=\"modal-content\">"; echo "<iframe onload=\"resizeIFrameToFitContent()\" id=\"popupcontent\" height=\"200px\" width=\"150px\"></iframe>"; echo "</div>"; echo "</div>";
控制弹窗显示/隐藏与iframe自适应的JavaScript代码
// START: Code for popup on entity link hover var modal = document.getElementById('myModal'); // To show the modal popup when hovering over the Entity URL link showPopup = function(context) { let link = context.href; link = link.replace("entity.php", "entitycard.php"); //link example is [网站域名]/wiki/entitycard.php?entityid=697711 modal.style.display = "block"; document.getElementById("popupcontent").src = link; resizeIFrameToFitContent(); }; // When the user moves mouse off of link, close the modal hidePopup = function(context) { modal.style.display = "none"; } // To resize the popup iFrame function resizeIFrameToFitContent() { document.getElementById("popupcontent").width = 0; document.getElementById("popupcontent").height = 0; document.getElementById("popupcontent").width = document.getElementById("popupcontent").contentWindow.document.documentElement.scrollWidth + 7; document.getElementById("popupcontent").height = document.getElementById("popupcontent").contentWindow.document.documentElement.scrollHeight; } // END: Code for popup on entity link hover
实在想不通为什么WordPress会干扰到这个独立的PHP页面,希望各位能给我一些排查思路,谢谢大家!
备注:内容来源于stack exchange,提问作者KisnardOnline
相关产品推荐
相关产品推荐

