У меня есть код Javascript, который открывает ISBN книги на Amazon с помощью гиперссылок (не стесняйтесь попробовать, например: 0133098648). Я хотел бы, чтобы URL-адрес открывался в новом окне со всеми ссылками, которые были нажаты на новой вкладке в том же окне. Кажется, что каждый раз можно открывать только новую вкладку текущего окна или новое окно.Возможно ли это в браузере? [JavaScript/HTML]
Является ли то, что я ищу, чтобы сделать даже возможным? Я читал, что что-то вроде этого ограничено браузерами по соображениям безопасности; Может быть, есть работа? Я вытаскиваю свои волосы, пытаясь найти решение для этого, если бы я мог, это облегчило бы мою жизнь.
Изображение описать мой вопрос: http://imgur.com/a/5lUP4
Пожалуйста, используйте JSfiddle пример: http://jsfiddle.net/mq1efed2 (код не работает на Stackoveflow)
<html>
<div><b>ISBN Hyperlinker</b></div>
<textarea id=numbers placeholder="paste isbn numbers as csv here" style="width:100%" rows="8" >
</textarea>
<div><b>Hyperlinked text:</b></div>
<div id="output" style="white-space: pre"></div>
<script>
//the input box.
var input = document.getElementById('numbers');
var output = document.getElementById('output')
var base =
'https://www.amazon.ca/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords='
//adding an event listener for change on the input box
input.addEventListener('input', handler, false);
//function that runs when the change event is emitted
function handler() {
var items = input.value.split(/\b((?:\d\s*?){10,13})\b/gm);
// Build DOM for output
var container = document.createElement('span');
items.map(function (item, index) {
if (index % 2) { // it is the part that matches the split regex:
var link = document.createElement('a');
link.textContent = item.trim();
link.setAttribute('target', '_blank');
link.setAttribute('href', base + item.replace(/\D+/g, ''));
container.appendChild(link);
} else { // it is the text next to the matches
container.appendChild(document.createTextNode(item))
}
});
// Replace output
output.innerHTML = '';
output.appendChild(container);
}
handler(); // run on load
</script>
</html>
Если какое-либо ограничение существует «по соображениям безопасности», нет «обходного пути». – Pointy
Вы задали этот вопрос раньше? –
Я не совсем уверен, что вы просите. Если вы добавите обработчик onclick в ссылку и что обработчик onclick использует window.open без 3-х параметров, он должен открыться на вкладке с высотой и шириной или другими третьими параметрами, это должно всплывающее окно. target = "...." откроется на вкладке в большинстве браузеров. Если контент не с того же источника, вы не сможете манипулировать новыми окнами/вкладками после открытия – mplungjan