我有一点Javascript code,创建一个"保存友好的"版本的网页。

child = window.open("","child");
child.document.write(htmlPage);

"htmlPage"是基本html网页与所有javascript引用取出,一套不同的头的图像引用,等等。

一切都显示完全的弹出窗口,没有javascript的运行。当我点击"的文件>节省为",保存的文件是父窗口,以及所有其javascript,并没有一丝的孩子窗口。任何人都不会知道如何解决这个问题?我想保存的只有孩子窗口。

谢谢, -Kraryal

有帮助吗?

解决方案

在保存网页时,保存原来的URL的内容(例如,就像如果你下载了一个新的副本)

如果你想要一个“洁净”的版本,你需要在服务器上生成该版本,并与URL作为第一个参数打开弹出。

其他提示

我有一个类似的情况(但并不愿意完全放弃).我建造一个保存友好版本的网页使用Javascript,我想用户下载一个文本的文件(逗号分隔值,在我的情况)。我认为 data: Uri可以在这里帮助。

//construct the csvOutput in Javascript first
var popup = window.open("data:application/octet-stream," + encodeURIComponent(csvOutput), "child");
//no need to document.write() anything in the child window

在火狐,这不会弹出一个窗口,即使,只是要求的用户,如果他们想要保存的文件,并将它作为一个.一部分文件。不完全是理想的,但是至少这样可以节省的文件,不出现不必要的窗口。

或者,我们可以使用的text/plain MIME type:

//construct the csvOutput in Javascript first
var popup = window.open("data:text/plain;charset=utf-8," + encodeURIComponent(csvOutput), "child");

在火狐,这不会打开一个新的窗口,但它是默认保存作为ASCII码文本,没有任何令人讨厌的父窗口,或任何行包装。这可能是什么,我将使用。

它看起来这样不会的工作,在即虽然。即8是唯一的版本,支持 data: Uri,它有一个 系列的限制 在那里它可以使用。对于即,你可能会来看看 execCommand.

由于这个 tek尖线维基百科上的文章的数据URI方案.

用于windows/IE唯一的版本看这里: http://p2p.wrox.com/javascript-how/3193-how-do-you-save-html-page-your-local-hd.html

我知道,可怕的,但仅在情况下,它就像一个IE-只有内部网。...

唉,看来我没有足够的信誉评论添加到我的问题,所以我会在这里添加此。

此JavaScript是部署对于Internet Explorer和Safari。托管应用程序并不总是可以访问本地文件系统。

用户可以标记他们正在使用的页,然后将其保存供以后打印或发送电子邮件。我们告诉他们把它保存为单个文件存档,因此实际上可以邮件。保存对话框可以做到这一点,用户可以把文件的地方,他们有机会获得T,所以这就是为什么我们使用它。

看来简单的办法是从编写的JavaScript到本地目录中的新的HTML,但我们不能总是这样做。任何其他的想法?为帮助迄今为止感谢。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top