gpt4 book ai didi

javascript - _blank 在弹出窗口时被阻止,我该如何防止这种情况发生?

转载 作者:搜寻专家 更新时间:2023-10-31 08:26:32 24 4
gpt4 key购买 nike

我在使用时在服务器上创建了一个 pdf:

        function GetPdf(document) {


//Stores the data and creates the html,pdf file
$http.post('createpdf/', document).success(function(data){

console.log(data.filename);

window.open('download2/'+data.filename+".pdf", "_self");


});

我在 google chrome 中收到一条错误消息弹出窗口。当我使用该选项为该网站启用弹出窗口时,一切正常。有没有办法解决 ?因为这可能会让某些用户感到困惑。

但是当我使用:

window.open('download2/'+data.filename+".pdf", "_self");

它在没有警告的情况下打开页面,但随后主应用程序被 pdf 替换,这不是我想要的结果。

最佳答案

浏览器对于何时允许 JavaScript show a popup 有严格的规定,但它们可以概括为“仅响应用户操作”。

接收对 HTTP 请求的响应不是用户操作,因此禁止弹出窗口。

此处的简单解决方案是不使用 JavaScript。 Ajax 的目的是在不离开页面的情况下与服务器通信,但无论如何您都会离开页面,因此使用 Ajax 没有任何意义。

只需使用常规表单提交即可。

<form method="post" action="createpdf/" target="_blank">

…然后让服务器端脚本重定向到创建的 PDF 的 URL,而不是将 URL 作为 JSON 返回。

关于javascript - _blank 在弹出窗口时被阻止,我该如何防止这种情况发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34090835/

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