JS bookmarklet для открытия сайтов в Google Translate - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу сделать букмарклет JavaScript, который откроет страницу внутри Google Translate.Поэтому, если я нажму на элемент или ссылку, он откроется в Google Translate.Это также можно отключить, нажав на закладку еще раз.

Я написал что-то, что, как мне кажется, должно работать, оно дало бы каждому элементу «а» (не уверен, будет ли он работать с другими ссылками) event_listener, который при нажатии останавливал бы выполнение ссылки по умолчанию, исохраните href в переменную, чтобы я мог реализовать ее в открытии Google Translate, а затем удалить этот event_listener (еще не сделал этого).Проблема в том, что он предупреждает (чтобы проверить, что я получил ссылку) каждую отдельную ссылку, но она выглядит как неопределенная.

javascript: 
var A = document.getElementsByTagName('A'); 
var link = null
for(var i=0;i<A.length;i++){
  A[i].addEventListener("click", getLink(i)); 
  A[i].addEventListener("click", stopDirect());
}
function stopDirect() {
  event.preventDefault();
}
function getLink(e) {
  link = e.href; 
  alert (link);
}

Это код для открытия ссылки в Google Translate

window.open("https://translate.google.com/translate?hl=en&sl=es&tl=en&u=" + thaturl+ "&anno=2");

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Итак, прослушайте событие click в документе и прочитайте целевой путь ....

document.body.addEventListener("click", function (event) {
  console.log()
  if (event.target.tagName === "A" && event.shiftKey) {
    console.log(event.target.href); //window.open(....)
    event.preventDefault();
    return false;
  }
})
<a href="http://www.example.com">test 1</a>
<a href="http://www.stackoverflow.com">test 2</a>
0 голосов
/ 13 ноября 2018

Может быть, вы можете попробовать это.

<a href="javascript:;" onclick="redirect('your_url_here')">Click Me!</a>

<script>
  function redirect(url) {
    window.open(url, "_blank")
  }
</script>

Вы можете обратиться сюда: https://www.w3schools.com/jsref/met_win_open.asp

...