拯救一个孩子窗口,可以节省的父窗口替代(Javascript)
-
05-09-2019 - |
题
我有一点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,但我们不能总是这样做。任何其他的想法?为帮助迄今为止感谢。