私は Intab 、a Chrome新しいタブではなくインラインでリンクを表示できるようにする拡張機能の作成者です。シーン、ユーザーがクリックしたURLを読み込むのは単なるiframeです。
X-Frame-OptionsヘッダーをDENYまたはSAMEORIGINに設定するサイトを除いて、非常にうまく機能します。グーグルやフェイスブックのようないくつかの本当に大きなサイトは両方ともそれを使用しているので、ややジャンキーな体験ができます。
これを回避する方法はありますか? Chrome拡張機能を使用しているため、アクセスできるブラウザレベルのものはありますか?アイデアやヘルプを探しています!
Chromeは、HTTPリクエストをインターセプトおよび変更するための webRequest
APIを提供します。 X-Frame-Options
ヘッダーを削除して、iframe内のページのインライン化を許可できます。
chrome.webRequest.onHeadersReceived.addListener(
function(info) {
var headers = info.responseHeaders;
for (var i=headers.length-1; i>=0; --i) {
var header = headers[i].name.toLowerCase();
if (header == 'x-frame-options' || header == 'frame-options') {
headers.splice(i, 1); // Remove header
}
}
return {responseHeaders: headers};
},
{
urls: [ '*://*/*' ], // Pattern to match all http(s) pages
types: [ 'sub_frame' ]
},
['blocking', 'responseHeaders']
);
マニフェストでは、webRequest
およびwebRequestBlocking
権限に加えて、インターセプトするURLパターンを指定する必要があります。