gpt4 book ai didi

javascript - 保存子窗口会保存父窗口(Javascript)

转载 作者:行者123 更新时间:2023-11-30 07:29:55 24 4
gpt4 key购买 nike

我有一些 Javascript 代码可以创建网页的“保存友好”版本。


child = window.open("","child");<br/>
child.document.write(htmlPage);

“htmlPage”是页面的基本 html,其中包含所有 javascript 引用、一组不同的标题图像引用等。

弹出窗口中的所有内容都完美显示,没有运行 javascript。当我点击“文件->另存为”时,保存的文件是父窗口,连同它的所有 javascript,没有子窗口的踪迹。有谁知道如何解决这个问题?我只想保存子窗口。

谢谢,-克拉里尔

最佳答案

我有过类似的情况(但不愿意完全放弃)。我正在使用 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

在 Firefox 中,这甚至不会弹出窗口,只是询问用户是否要保存文件,并将其保存为 .part 文件。不是很理想,但至少它可以保存文件而不会弹出不必要的窗口。

或者,我们可以使用 text/plain MIME 类型:

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

在 Firefox 中,这确实会弹出一个新窗口,但随后默认保存为 ASCII 文本,没有父窗口的任何内容或任何换行。这可能是我将要使用的。

看起来这在 IE 中不起作用。 IE 8 是唯一支持 data: URI 的版本,它有一个 series of restrictions。在哪里可以使用。对于 IE,您可能会查看 execCommand .

多亏了这个tek-tip threadWikipedia article on the data URI scheme .

关于javascript - 保存子窗口会保存父窗口(Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/904893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com