Nic*_*ick 2 javascript ajax jquery new-window
我一直在做一些关于打开一个新窗口并使用jQuery/JavaScript将HTML写入其中的研究,看起来正确的方法是:
为新窗口创建变量
var w = window.open();
Run Code Online (Sandbox Code Playgroud)
插入新数据并处理变量
$(w.document.body).html(data);
Run Code Online (Sandbox Code Playgroud)
对我来说,这完全合情合理.然而,当我尝试将其合并到我的脚本中时("数据"是HTML的持有者)它不会打开一个新窗口...除非我只是遗漏了一些简单的东西,据我所知它看起来很棒. ..
function newmore(str) {
var identifier = 4;
//get the history
$.post("ajaxQuery.php", {
identifier : identifier,
vanid : str
},
//ajax query
function(data) {
//response is here
var w = window.open();
$(w.document.body).html(data);
});//end ajax
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
PS似乎在控制台中没有错误
您的新窗口可能被大多数浏览器中内置的弹出窗口阻止程序阻止.如果您创建新窗口是用户操作的直接结果(键,单击),则浏览器通常不会阻止它.但是,如果你等到一段时间之后(比如在ajax调用完成之后),那么它将被阻止,这可能就是你的情况.
因此,修复通常是立即创建窗口直接响应用户事件(不要等到ajax调用完成),将窗口句柄保存在变量中,然后在ajax调用之后将内容放在窗口中完成.
function newmore(str){
var identifier = 4;
// create window immediately so it won't be blocked by popup blocker
var w = window.open();
//get the history
$.post("ajaxQuery.php", {
identifier : identifier,
vanid : str
},
//ajax query
function(data) {
//response is here
$(w.document.body).html(data);
});//end ajax
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11949 次 |
| 最近记录: |