将弹出窗口的源保存为字符串?

时间:2012-09-16 21:09:00

标签: javascript html

有没有办法将弹出窗口的来源保存在我的域之外作为字符串,打开方式:

window.open('html');

另一种解决我的问题的方法是将弹出窗口的输出指向一个字符串。我可以使用chrome的view-source:浏览器功能并弹出:

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

由于我仅将其用于个人用途,因此只有这是唯一的方法,才能与Chrome兼容。

2 个答案:

答案 0 :(得分: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对跨域弹出窗口的限制是什么,因此您可能需要检查本地设置。

答案 1 :(得分:0)

如果您真的想要构建一个小型应用来完成您所描述的内容,请记住您可以右键单击并查看Chrome中的几乎任何页面源,包括标签,主页和其他一些地方。具有讽刺意味的是,View Source页面是我发现的唯一一个我似乎无法获得源代码的页面,尽管我似乎发现了它的URI是什么:

chrome-devtools://devtools/devtools.html

但是没有任何事情发生,除非我search for that 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

您可以从以下两个练习计划中找到以下内容:

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

Live HTTP Headers headers.js - 以下显示的是您如何将监听器附加到`window.onlaod` `event和收到响应时,会收到通知,以便您可以获取源(而不是浏览器的解析和计算源)。

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);
}

Download Selected Links - 来自名为 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的程序,作为扩展程序。它似乎就是你所追求的(或者你只能下载parts comprisedseparately}:

  

SingleFile(c)2011 Gildas Lormeau

     

SingleFile 是Chrome扩展程序,可帮助归档整个页面   到一个HTML文件。

坏消息我担心其中很多都很有用,因为现在我已经查看了很多这些资源和其他资源,我认为这只是或多或少的内部浏览器。请注意示例应用,请注意several different kinds of apps具有不同的用途和访问级别。

毋庸置疑,我发现了很多东西,而且我不知道你想要,需要或关心多少。但我想,既然你让我再次思考它,我会继续和你分享我发现的东西。有几个示例应用程序,我认为您可以重新配置或与之合作以便为您工作。祝你好运。


其他一些亮点: