我的post方法接收一个带有动态创建的pdf路径的对象,我想打开pdf。但有些浏览器会在blocked popup
等函数中显示window.open()
。然后我试图创建一个锚并触发点击它,但似乎不起作用:
$http.post('/Export/Create', params).success(function (o) {
load.fadeOut(function () {
if (o.Path.match(/\.pdf$/)) {
console.log('returned PDF');
var a = $('<a></a>').appendTo('body');
a.attr({ 'href': o.Path, 'target': '_blank' });
a.trigger('click');
}
// else ...
});
}).error(function (x) { console.log(x); });
我收到returned PDF
消息,因此问题在于动态锚。
提前致谢。
答案 0 :(得分:1)
在加载dom后添加动态内容时,添加的元素不会存在事件处理程序,因此您必须使用类似
的内容.on("click")
第二个参数中的'a'是元素类型,后跟一个类名,用于将监听器挂钩到例如: “button.classname”。
此外,在加载动态内容之前,页面上可能存在上述<a>
函数。在稍后添加<a>
后,它会很好地注册点击次数(只要您将匹配的类名添加到<script>
window.addEventListener("load", CanvasProperties, false);
//Global Variables
var canvas, context;
// Canvase Element - 2D Properties
function CanvasProperties(){
canvas = document.getElementById("canvas");
context = canvas.getContext("2d");
window.addEventListener("mousemove", CustomCursor, false);};
// Customized Cursor for Game's Canvas
function CustomCursor(e){
var canvasRect = canvas.getBoundingClientRect();
var xPosition = e.clientX - 5 - canvasRect.left;
var yPosition = e.clientY - 5 - canvasRect.top;
var img = new Image();
img.src = "hero.png";
context.drawImage(img, xPosition, yPosition, 80, 80);};
</script>
)。