Javascript 使用JS创建新窗口时,上下文菜单中的“另存为…”、“查看页面源”和“查看页面信息”选项将被禁用

Javascript 使用JS创建新窗口时,上下文菜单中的“另存为…”、“查看页面源”和“查看页面信息”选项将被禁用,javascript,jquery,html,google-chrome,internet-explorer,Javascript,Jquery,Html,Google Chrome,Internet Explorer,尝试使用JavaScript将新窗口创建为弹出窗口,新窗口的上下文菜单具有以下选项: 另存为。。。, 查看页面源, 查看页面信息 在Chrome、Opera和IE11中禁用,但在Firefox中运行良好 我按照以下说明进行操作: var j = window.open(myUrl); j.document.write("<!DOCTYPE html><html><head><title>my page</title></head&

尝试使用JavaScript将新窗口创建为弹出窗口,新窗口的上下文菜单具有以下选项:

另存为。。。, 查看页面源, 查看页面信息 在Chrome、Opera和IE11中禁用,但在Firefox中运行良好

我按照以下说明进行操作:

var j = window.open(myUrl);
j.document.write("<!DOCTYPE html><html><head><title>my page</title></head><body> <p> ciao sample new page </p> </body> </html>");
j.document.close();
同样的代码也在我们的系统中使用HTML4,现在整个体系结构已经传递到html5

我想这与安全问题有关,但为什么它在Firefox中可以工作呢?如何在不编写自定义上下文菜单的情况下使该选项仍然可用?可能是html5的新问题?我在上面的代码中是否有错误


谢谢你

我用HTML4.0尝试了同样的代码,效果也一样。我认为这是因为在Chrome和其他提到的浏览器中处理视图源代码的方式。在这些浏览器中,在查看源代码操作之前进行刷新,这是出于设计。若要查看源代码,可以检查元素,它应该可以正常工作。我认为这不是一个安全问题。你能发布过去正常工作而现在不正常工作的HTML 4.0代码吗?

我用window.openmyPage修复了这个问题

更确切地说,我通过JS进行了一次POST调用,然后我使用window.write编写了服务器响应,这给我带来了问题。无论如何,我上面写的示例即使在一个简单的html页面中,对我来说也不起作用

因此,我保留了保存页面服务器端的POST方法,然后response返回我想要呈现的html页面的id,然后我执行了以下操作:

window.open("myUrl?pageId=" + response.serverResponse.responseText, 'myPage');
这对我来说很好,不需要编写其他代码


谢谢你

在HTML4中也对我有用。现在我们将所有内容都更新到HTML5,问题就出现了。事实上,这只是一个例子,但你可以看到doctype,这意味着,我们在HTML5中。无论如何,我认为这是一个写方法上的浏览器安全问题,我以不同的方式修复了这个问题,但是谢谢。