Я работаю над сайтом, скажем, имя сайта «https: // сайт» (который построен на 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)
Вышеуказанная ошибка генерируется нажатием View Details
раздел плагинов WordPress (как показано ниже):
Эта ошибка, кажется, существует в каждый плагин WordPress но он работает, когда я открываю в новой вкладке, но не работает, когда я открываю в том же окне.
Постановка задачи:
Мне интересно, какой файл мне нужно изменить в WordPress, чтобы решить эту ошибку. Эта ошибка, кажется, существует в каждом плагине WordPress. Как уже упоминалось, он работает в новой вкладке, но не работает на той же странице.
У меня такое чувство, что я должен внести некоторые изменения в следующий файл, увидев ошибку выше (load-scripts.php, так как ошибка генерируется в этом файле) но не уверен, какую строку мне нужно добавить, чтобы она работала.
Что-то плохое произошло с вашим интерфейсом администратора WordPress.
Первое, на что нужно обратить внимание, это то, что описанная вами ошибка — это хорошо известная проблема, о которой вы, возможно, уже заметили: SecurityError: заблокирован фрейм с источником от доступа к фрейму кросс-происхождения
Посмотрите на первый ответ там:
Вы не можете получить доступ к другому источнику, используя JavaScript,
это было бы огромным недостатком безопасности, если бы вы могли это сделать. Для
Браузеры политики того же происхождения блокируют сценарии, пытаясь получить доступ к фрейму
с другим происхождением.Протокол, имя хоста и порт должны быть одинаковыми вашего домена, если вы
хочу получить доступ к кадру.
Второе, на что стоит обратить внимание, это то, что «Посмотреть детали» Кнопка в интерфейсе администратора WordPress делает: Он открывает ThickBox, содержащий и iframe, который довольно часто показывает удаленное содержимое в IFrame. Как это работает, точно описано здесь: https://codex.wordpress.org/Javascript_Reference/ThickBox
load-scripts.php
является важным файлом ядра WordPress, загружаемым в администратор, который используется для загрузки файлов JavaScript без необходимости встраивания каждого из них. Эти файлы JavaScript обычно добавляются к администратору WordPress с помощью admin_enqueue_scripts()
функция (https://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts).
Поскольку ваша проблема довольно необычна, и кнопка «Просмотреть подробности» для плагинов работает почти каждый раз, когда есть только две возможности:
1. IFrame «View Details» обычно загружается из того же места, где находится ваш WordPress — поэтому у вас может быть проблема, связанная с тем, что браузер хочет загрузить его с другого хоста
Это происходит, если у вас есть какая-то неверная конфигурация в вашей установке WordPress, и Thickbox пытается получить IFrame от хоста, который браузер считает другим хостом. Настройте WordPress правильно.
2. У вас есть плохо запрограммированный плагин или тема, которая внедряет скрипт, вызывающий эту проблему.
Решение: Деактивируйте вашу тему и все ваши плагины один за другим и посмотрите, сохраняется ли ошибка. Таким образом, вы можете узнать модификацию, которая вызывает проблему, и, возможно, сделать запрос об ошибке разработчикам плагинов.
Почти на 100% уверен, что проблема связана с одним плагином, темой или неправильной конфигурацией.
Других решений пока нет …