繁体   English   中英

Javascript重定向到动态创建的HTML

[英]Javascript redirect to dynamically created HTML

我有一个JavaScript例程,可以动态创建HTML页面,并带有其自己的head和script标签。

如果我获取字符串的内容并将其保存到文件中,然后在浏览器中查看该文件,一切都很好,但是如果我尝试使用document.write(newHTML),它的行为就不会一样。 动态newHTML标头中的javascript非常复杂,我无法在此处添加它。但是请相信我,如果将其保存到文件中,它会很好用,但是如果尝试用它替换当前页面,则不能使用document.write。 我没有考虑的可能有哪些陷阱会导致这种情况? 我是否可能需要首先删除现有标头中的现有脚本标签? 我需要手动重新调用onLoad吗?

同样,当将字符串保存到例如“ sample.html”并浏览至该字符串时,它的效果很好,但是如果我将其设置为var Samp =“ [REAL HTML HERE]”; 然后说document.write(Samp); document.close(); javascript例程无法正确执行。

关于我可能会缺少什么的任何提示?

除了document.write之外,还有其他/更好的方法来动态替换页面的内容吗?

尽管磁盘或服务器上不存在,但仅存在于内存中的字符串中,但我能以某种方式重定向到新页面吗? 我不想将整个文件上传到我的服务器,只是为了再次重新下载以查看它。

如何使用javascript动态地以全新的内容(包括复杂的客户端javascript)替换当前页面的当前内容,包括复杂的客户端javascript,并始终获得与将字符串作为html文件保存到服务器并重定向后完全相同的结果要吗?

如何“重定向”到仅作为客户端字符串存在的HTML文件?

也许eval()函数在这里会有所帮助? 不看代码就很难回答。

你可以这样做:

var win=window.open("") //open new window and write to it

var html = generate_html();

win.document.write(html)
win.document.close();

从未尝试过,但是我认为应该是可能的。 关于使它起作用的一些想法:

  • 确保包含您的js的文档以正确的标头/ mimetype / doctype发送
  • 以有效的方式服务javascript,例如,通过发送包含script标签的w3c有效页面。

也许那就行了。 如果不是,请尝试在写入新HTML之前擦除当前HTML。

此外,查看其他人如何完成此任务可能会有所帮助。 如果我没记错的话,谷歌页面本质上也是带有一堆js的短HTML页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM