如何将javascript函数的结果加载到新选项卡

时间:2016-06-13 06:17:27

标签: javascript url tabs

我有一个函数可以执行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;)。那么不显示我的函数结果有什么问题呢?

编辑:我刚刚意识到该功能也不适用于锚元素。我莫名其妙地困惑。对不起。

1 个答案:

答案 0 :(得分:1)

您可以创建一个新窗口,获取您的内容,然后使用jQuery将内容插入到窗口中:

  var w = window.open();
  $(w.document.body).html(viewInternalDocument('AF7GH209'));

或与vanillaJS:

var w = window.open();
w.document.body.innerHTML = viewInternalDocument('AF7GH209');