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

标签 javascript url tabs

我有一个函数可以通过 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/

相关文章:

javascript - 在我的 javascript 函数完成之前,如何阻止浏览器尝试渲染页面?

java - 如何通过传递 json URL 使 URL 中的空格可读

javascript - 如何使用正则表达式根据字符串过滤数组项?

java - 使用 URL java 连接到 localhost 时出错

javascript - 在之前的下拉选择之后将值附加到单选按钮而不是下拉框

javascript - 使用c#将用户数据设置为HTML标签

javascript - 如何使用 jQuery 将查询字符串传递给 Ajax 调用?

某一特定选项卡上的 jQuery Tab 自定义事件

jquery - 自动生成 jquery 标签

c# - 使用 Bootstrap 回发后恢复选定的选项卡