我有一个函数可以执行Ajax加载某些html部分。有时我需要将结果显示在单独的窗口中(如果愿意,还可以显示在选项卡中)。当我在锚元素的href属性中包含该函数调用时,我可以得到该行为:
<a href="javascript:viewInternalDocument('AF7GH209')" target="_blank">Related document</>
但如果我尝试通过调用window.open手动完成,我只会得到空白标签:
window.open("javascript:viewInternalDocument('AF7GH209')","_blank");
实际上,即使我省略了_blank
参数,也会打开新标签。
如果你想知道我的viewInternalDocument
函数是做什么的,那么这就是它的内部结构:
function viewInternalDoc(docID) {
var url = "/Cabinet/ViewInternalDocument";
var args = { docID: docID};
$.get(url, args, function (html) {
$('#divContentHierarchy').html(html);
}).fail(function () {
alert('Error loading selected document')
});
}
当我尝试window.open('javascript:alert("Hello")')
时,我可以在新标签中获取提醒(同样,省略了&#34; _blank&#34;)。那么不显示我的函数结果有什么问题呢?
编辑:我刚刚意识到该功能也不适用于锚元素。我莫名其妙地困惑。对不起。
答案 0 :(得分:1)
您可以创建一个新窗口,获取您的内容,然后使用jQuery将内容插入到窗口中:
var w = window.open();
$(w.document.body).html(viewInternalDocument('AF7GH209'));
或与vanillaJS:
var w = window.open();
w.document.body.innerHTML = viewInternalDocument('AF7GH209');