我有一个函数可以通过 Ajax 加载某些 html 部分。有时我需要将结果显示在单独的窗口(或选项卡,如果您愿意的话)中。当我将该函数调用包含在 anchor 元素的 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")')
时,我可以在新选项卡中收到警报(再次省略“_blank”)。那么不显示我的函数结果有什么问题呢?
编辑:我刚刚意识到该功能也不适用于 anchor 元素。我有点困惑。对此感到抱歉。
最佳答案
您可以创建一个新窗口,获取内容,然后使用 jQuery 将内容插入到窗口中:
var w = window.open();
$(w.document.body).html(viewInternalDocument('AF7GH209'));
或者使用 vanillaJS:
var w = window.open();
w.document.body.innerHTML = viewInternalDocument('AF7GH209');
关于javascript - 如何将 JavaScript 函数的结果加载到新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37782932/