0

ドメイン外のポップアップウィンドウのソースを文字列として保存する方法はありますか?

window.open('html');

また、私の問題を修正する別の方法は、ポップアップの出力を文字列に送ることです。Chromeのview-source:ブラウザ機能を使用してポップアップを作成できます。

window.open('view-source:html');

私はこれを個人的な使用にのみ使用しているので、それがそれを行う唯一の方法である場合にのみChromeと互換性があります。

4

2 に答える 2

0

あなたが説明していることを実現するために本当に小さなアプリを構築したい場合は、タブ、ホームページ、およびその他の場所を含む、Chrome のほぼすべてのページ ソースを右クリックして表示できることを覚えておいてください。皮肉なことに、ソースを表示するページは、ソースにアクセスできなかったように見える唯一のページですが、その URI が何であるかはわかっているようです。

chrome-devtools://devtools/devtools.html

しかし、その URI を検索する場合を除いて、何も表示されません。以下は、いくつかの URI を開いて、Right-Click + View Source何が得られるかを確認するためのものです。

* Regular tab (new)
* view-source:chrome://newtab/
* view-source:chrome://extensions-frame        // This has file handlers for extensions
* view-source:chrome://settings-frame/settings // Go to lines `2907`
* view-source:chrome://memory-redirect/
* view-source:chrome://downloads/
* view-source:chrome://settings-frame/options_bundle.js // This one has all kinds of good stuff
* view-source:chrome://resources/js/util.js 
* view-source:chrome://chrome/uber.js
* view-source:chrome://sync-internals/
* view-source:chrome://resources/js/cr/ui/array_data_model.js
* view-source:chrome://resources/js/cr/ui/list_item.js
* view-source:chrome://resources/js/cr/ui/tabs.js

次の 2 つの練習プログラムとその他のプログラムがあります。

http://developer.chrome.com/extensions/tabs.html#samples

ライブ HTTP ヘッダー headers.js - 以下に示すのは、`window.onlaod` イベントにリスナーをアタッチし、応答を受信したときに通知を受けて、ソース (ブラウザの解析および計算されたソース)。

window.addEventListener("load", function() {
    chrome.debugger.sendCommand({tabId:tabId}, "Network.enable");
    chrome.debugger.onEvent.addListener(onEvent);
});

} else if (message == "Network.responseReceived") {
    appendResponse(params.requestId, params.response);
}

選択したリンクをダウンロード- というファイルの 2 番目のpopup.js

// Send back to the popup a sorted deduped list of valid link URLs on this page.
// The popup injects this script into all frames in the active tab.
chrome.extension.sendRequest(links);

// Download all visible checked links.
chrome.experimental.downloads.download({
    url: visibleLinks[i]},
    function(id) {
});

もちろん、これはSingleFileと呼ばれるプログラムで、拡張機能として使用されます。それはあなたが求めていることをしているようです(または、それが構成されている部分だけを別々にダウンロードすることもできます):

SingleFile (c) 2011 ギルダス・ローモー

SingleFileは、完全なページを単一の HTML ファイルにアーカイブするのに役立つ Chrome 拡張機能です。

悪いニュースとしては、そのかなりの部分が有用であることを残念に思います。なぜなら、多くのリソースやその他のリソースを見てきましたが、これのかなりの部分は多かれ少なかれ内部ブラウ​​ザーのみであると思うからです。サンプル アプリに注意してください。用途やアクセス レベルが異なるさまざまな種類のアプリがあることに注意してください。

言うまでもなく、私はたくさんのものを見つけましたが、あなたがそれをどれだけ欲しがり、必要とし、気にかけているのかわかりません。しかし、あなたが私にもう一度考えさせたので、先に進んで私が見つけたことをあなたと共有しようと思いました. いくつかのサンプル アプリを使用して再構成したり、作業を行ったりすることができると思います。幸運を。


その他のハイライト:

于 2012-09-17T07:21:15.663 に答える
0

ポップアップで開きたいドキュメントをロードして、次のinnerHTMLように抽出することをお勧めします。

var popup = window.open('http://url.com');
// documentElement is the <html> element so you would get everything inside
var source = popup.document.documentElement.innerHTML;

これはIEで動作します。クロスドメインポップアップに対するChromeの制限が何であるか正確にはわからないので、ローカル設定を確認する必要があるかもしれません.

于 2012-09-16T21:29:18.797 に答える