В контексте пользователя script, например, выполненного Tampermonkey, возможна ли связь между двумя страницами разных доменов, которые устанавливают "X-Frame-Options" в "SAMEORIGIN"?
Я знаю этот способ отправки сообщений с одной страницы на другую с помощью iFrames и postMessage
, но при работе с сайтами, которые вы не контролируете, например, в моем case Qaru и Google (работая над ботом, чтобы автоматизировать что-то для себя), вы получите ошибку SAMEORIGIN
при попытке создать iFrame.
Но я подумал, что, поскольку я могу вставлять script на обе страницы, возможно, удастся снять какое-то решение или альтернативное решение.
Одно предложение, общий рабочий выглядело многообещающим, но, похоже, страница должна быть от одного источника. Также я рассмотрел спецификацию Broadcast Channel API, но он еще нигде не реализован, и он также, похоже, связан с одним и тем же происхождением политика.
Еще одна предлагаемая возможность, упомянутая до сих пор в комментариях, заключается в использовании GM API, поскольку это пользовательский script (расширенный/специальные функции JS). С GM_xmlhttpRequest
мы можем игнорировать кросс-доменные ограничения и загружать google.com
, а затем помещать их в iframe, но все источники укажут на сайт, на котором встроен iframe
, поэтому поиск на странице Google пытается выполнить параметры поиска в родительском домене сайта.
GM_xmlhttpRequest({
method: "GET",
url: "https://www.google.com",
headers: {
"User-Agent": "Mozilla/5.0",
"Accept": "text/xml"
},
onload: function(response) {
$('html').html('<iframe id="iframe"></iframe>');
$("#iframe").contents().find('html').html(response.responseText);
});
Возможно, я мог бы отредактировать поисковые запросы, чтобы указать на google.com
специально, вместо того чтобы позволить поиску принять домен родительской страницы. И если это не удается из-за некоторого зависания с той же политикой происхождения, я мог бы даже попытаться заменить Google xmlhttpRequest
на GM_xmlhttpRequest
, но я не уверен, что это можно сделать с пользователем script, если вы загружаете функции GM, запускаетесь в песочнице, не в состоянии переплетаться со сценариями страниц, если я правильно понимаю. Я просто не уверен.
С другой стороны, если мы можем обмануть содержимое iframe's
для обработки google.com
в качестве домена для запросов, хотя мы в бизнесе, но примеры, похоже, не существуют для такого рода вещей, поэтому Мне трудно понять, как это сделать.