2017-06-13 189 views
0

我有编辑操作按钮,没有选项“打开新选项卡”时,我右键单击。 这里是我的代码:浏览器选项在新选项卡中打开链接

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,并把这个链接从编辑()函数href和与我得到的选项打开在右键点击新标签,但也有这个问题,因为如果有一个单一的名称,而不是因为这个qoutes而引发的所有事情。所以唯一的办法就是使用这个功能。 我也试过用这个window.location.href但它不工作。 有没有其他选项可以在window.location旁边打开链接?

+0

[浏览器,JavaScript,以便在新标签window.open(可能的重复https://stackoverflow.com/questions/15818892/chrome-javascript-window-open -in-new-tab) –

+0

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

回答

0

你可以在锚标记瞄准这一事业的浏览器打开新的标签页<a target="_blank" href=""/>

OR

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

如果名称报价试图对其进行编码 https://www.w3schools.com/TAGS/ref_urlencode.asp

+0

这将始终在标签中打开,但我需要获得此选项,以便用户可以选择他在哪里编辑数据 – alonso05

+0

@ alonso05查看更新回答 –

+0

什么是(用户)在这个如果条件 – alonso05

0
<a id="edit" title="${editTr}" onclick="edit(event);"></a> 

这不是一个链接。链接必须具有href属性。没有一个,当你点击它时没有URL打开,或者在新标签页中打开。只有一个JavaScript程序可以运行。

我试着使用的href代替的onclick

这就是解决方案从编辑

链接()函数href和与我得到的选项打开在右键点击新标签,但也有问题,因为如果有单一qoutes在名称比所有meesses因为该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); 
相关问题