【问题标题】:Browser option open link in new tab浏览器选项在新选项卡中打开链接
【发布时间】:2017-06-13 15:33:51
【问题描述】:

我有用于编辑的操作按钮,当我右键单击时没有“在新选项卡中打开”选项。 这是我的代码:

function actionsTemplateConversion(data) {
    if (data != null){
        if (canEdit){
                row += '<a id="edit" title="${editTr}" onclick="edit(event);"></a>';
            }
            return row;
        }
    }

function edit(event) {
    table = $('#table').data();
    var dataItem = table.dataItem($(event.currentTarget).closest("tr"));

    window.location = "users/"+dataItem.id+"/editUser.html?id="+"${id}"+"&name="+"${name}";
    }

我尝试使用 href 代替 onclick 并将此链接从 edit() 函数放在 href 中,然后我可以在新选项卡中打开选项以进行右键单击,但这也有问题,因为如果有单个 qoutes名字比一切都因为那个 qoutes 搞砸了。所以唯一的办法就是使用这个功能。 我也试过这个 window.location.href 但它不起作用。 除了window.location还有其他打开链接的选项吗?

【问题讨论】:

  • 我看到了这个,但这对我没有帮助,因为这个解决方案总是在新标签页中打开链接。我需要这个选项,以便用户可以选择他在哪里编辑数据

标签: javascript


【解决方案1】:

您可以定位到锚标记,这会导致浏览器打开新标签&lt;a target="_blank" href=""/&gt;

if(user)
 window.open(encodeURI('url'), '_blank');
else
window.open(encodeURI('url'));

如果名称中的引号尝试对其进行编码 https://www.w3schools.com/TAGS/ref_urlencode.asp

【讨论】:

  • 这将始终在选项卡中打开,但我需要获取此选项,以便用户可以选择他在哪里编辑数据
  • if 条件下(用户)是什么
  • 我认为您需要用户可以选择在当前选项卡或新选项卡中打开
【解决方案2】:
<a id="edit" title="${editTr}" onclick="edit(event);"></a>

这不是链接。链接必须具有href 属性。如果没有,当您单击它或 在新标签页中打开 时,就没有可打开的 URL。只有一个 JavaScript 程序在运行。

我试过用 href 代替 onclick

这就是解决办法

href 中来自 edit() 函数的链接,并且我得到了在新选项卡中打开以进行右键单击的选项,但这也存在问题,因为如果名称中有单个 qoutes,那么一切都会因为 qoutes 而变得混乱

这是通过将字符串混合在一起而不是使用 DOM 来生成 HTML 的问题。

你必须非常小心地逃避一切。

改用 DOM。

因为您已经在使用 jQuery。这些方面的内容应该可以帮助您入门:

var url = "users/" + encodeURIComponent(dataItem.id) + "/editUser.html?id=" + encodeURIComponent("${id}") + "&name=" + encodeURIComponent("${name}");
var $link = jQuery("<a/>")
            .attr("href", url)
            .attr("title", "${editTr}")
            .attr("id", "edit") // Are you sure this is a UNIQUE id? Should this be a class instead?
            .on("click", edit);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多