2013-03-13 2 views
3

Я хочу создать ссылку, которая будет действовать как обычный <a> тег. В настоящее время я использую onClick="window.location='', но он не открывается в новом окне при среднем щелчке, например, <a>.Как имитировать ссылку с JS?

<table> 
    <tr onClick="window.location='/generatedlink.php'"> 
     <td> </td> 
     <td> </td> 
    </tr> 
</table> 

Я действительно не нужно, функциональность щелчка

+0

@hop: Я поставил 'jquery' помечать OP прилагается назад. Кто знает, может быть, у кого-то будет ответ, требующий jQuery. Тег позволяет им знать, что это нормально, чтобы опубликовать это. –

+0

@Chad Это именно то, что у него уже есть, только не встроенный – Swadq

+0

Что случилось с реальной ссылкой? –

ответ

5

Если вы хотите какой-либо браузера при условии, функциональность, например, средней кнопкой мыши, чтобы открыть в новом окне или щелкните правой кнопкой мыши на опции (новое окно, новая вкладка, сохранить, скопировать ссылку и т. д.), это будет нормальная ссылка. Браузер не знает, что ваш элемент не должен вести себя как ссылка.

+3

+1 Это правильный ответ. @skyisred, вы могли бы попытаться определить, какая кнопка была нажата, и т. д., но получение правильного кросс-браузера будет постоянным ** битвом. Поместите элементы 'a' с' display: block' в ваши 'td' элементы в строке, чтобы браузер мог выполнять свою работу. –

+0

Функциональность правой кнопки мыши не очень важна, мне в основном нужен средний клик. – skyisred

+0

То же самое относится: если вы хотите, чтобы поведение браузера, включая средний щелчок, чтобы открыть на новой вкладке, вы должны использовать обычные ссылки , чтобы браузер знал применять эти поведения. – Adrian

-1

Вы можете использовать

window.open ('/ generatedlink.php')

, чтобы открыть в новом окне, но это, скорее всего, блокируются браузером.

Вы можете использовать mousedown для обнаружения любого события mousedown.

$('a.dynlinks').mousedown(function(e){ 
    e.preventDefault(); 
    switch(e.which){ 
     case 1: 
      //left click 
      // use window.location 
      break; 
     case 2: 
      //middle click 
      // use window.open 
      break; 
    } 
}) 
+0

* «... но скорее всего он будет заблокирован браузером». * Не в прямой реакции на клик это не будет. –

+1

Это не решает проблему среднего щелчка, о которой спрашивает ОП. – Adrian

+0

обновлен для проблем с нажатием кнопки ops – jagzviruz

-3

использование document.location

вместо window.location

<table> 
    <tr onClick="document.location='/generatedlink.php'"> 
     <td> </td> 
     <td> </td> 
    </tr> 
</table> 
Смежные вопросы