我正在一个网站上工作,假设网站名称为“ https://website” (基于wordpress),其中在控制台上出现以下错误:>
Uncaught DOMException: Blocked a frame with origin "https://website" from accessing a cross-origin frame.
at contents (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:2:26921)
at Function.map (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:2:3613)
at a.fn.init.n.fn.(anonymous function) [as contents] (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:2:27001)
at b (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=postbox,thickbox,hoverIntent,common,admin-bar,wp-a11y,updates,plugin-install,svg-painter,heartbeat,wp-auth-check,shortcode,wp-ba&load%5B%5D=ckbone,media-models,wp-plupload,wp-mediaelement,wp-api-request,media-views,media-editor,media-audiovideo,mce-view,imgareaselect,&load%5B%5D=image-edit&ver=4.9.8:347:103)
at HTMLBodyElement.<anonymous> (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=postbox,thickbox,hoverIntent,common,admin-bar,wp-a11y,updates,plugin-install,svg-painter,heartbeat,wp-auth-check,shortcode,wp-ba&load%5B%5D=ckbone,media-models,wp-plupload,wp-mediaelement,wp-api-request,media-views,media-editor,media-audiovideo,mce-view,imgareaselect,&load%5B%5D=image-edit&ver=4.9.8:347:1306)
at HTMLBodyElement.dispatch (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:12444)
at HTMLBodyElement.r.handle (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:9173)
at Object.trigger (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:11573)
at Object.a.event.trigger (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:9:8275)
at HTMLDivElement.<anonymous> (https://website/wp-admin/load-scripts.php?c=1&load%5B%5D=jquery-core,jquery-migrate,jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,utils,underscore,wp-util,backbone,&load%5B%5D=moxiejs,plupload&ver=4.9.8:3:18991)
上述错误是通过单击wordpress插件的View Details
部分(如下所示)生成的:
每个单个wordpress插件中似乎都存在此错误,但当我在新标签页中打开时,此错误有效,但在同一窗口中打开时,此错误无效。
问题陈述:
我想知道我需要在wordpress中修改哪个文件才能解决此错误。这个错误似乎在每个wordpress插件中都存在。 如前所述,它可以在新标签中使用,但不能在同一页面上使用。
我觉得我必须通过查看上面的错误( load-scripts.php,因为该文件中生成了错误)在以下文件中进行一些更改,但不确定是哪一行我需要添加才能使其正常运行。
答案 0 :(得分:3)
您的WordPress管理界面发生了一些问题。
首先要注意的是,您描述的错误是一个众所周知的问题,您可能已经注意到:SecurityError: Blocked a frame with origin from accessing a cross-origin frame
看看那里的第一个答案:
您无法使用JavaScript访问其他来源的内容, 如果可以的话,那将是一个巨大的安全漏洞。为了 同源策略浏览器阻止试图访问框架的脚本 起源不同。
协议,主机名和端口必须与您的域相同,如果您 要访问框架。
要注意的第二件事是WordPress管理界面中的“查看详细信息” 按钮的作用:它打开一个包含和iframe的ThickBox,它经常在IFrame中显示远程内容。此处详细描述了其工作方式:https://codex.wordpress.org/Javascript_Reference/ThickBox
load-scripts.php
是在管理员中加载的重要WordPress核心文件,用于加载JavaScript文件而无需嵌入每个文件。这些JavaScript文件通常使用admin_enqueue_scripts()
函数(https://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts)添加到WordPress管理员中。
由于您的问题很少见,并且插件的“查看详细信息”按钮几乎在每次出现时都起作用:
1。通常,“查看详细信息” iframe是从WordPress所在的同一位置加载的-因此,您可能会遇到问题,例如浏览器希望从其他主机上加载它。
如果您在WordPress安装中配置有误,并且Thinbox尝试从浏览器认为是另一台主机的主机上获取IFrame,则会发生这种情况。正确配置WordPress。
2。您有一个编程错误的插件或主题,正在注入导致此问题的脚本
解决方案:逐一停用主题和所有插件,然后查看错误是否仍然存在。这样,您可以找出导致问题的修改,然后向插件开发人员提出错误请求。
几乎100%会确定单个插件,主题或配置错误引起了此问题。