Кнопка выбора в списке - PullRequest
       6

Кнопка выбора в списке

0 голосов
/ 24 декабря 2018

Я пытаюсь создать расширение для браузера Safari, которое добавит панель (.html) со списком из нескольких ссылок и кнопкой.Когда я нажимаю на кнопку, выбранный элемент (например, ссылка) из списка открывается в новой вкладке.

Если выбран элемент Microsoft и пользователь нажимает кнопку Открыть откроется www.microsoft.com в новой вкладке.

Я пробовал использовать две функции selectedLink ниже, но ни одна из них не работает.Возможно, я делаю это неправильно.

Другая функция openInTab необходима, так как я работаю с расширением Safari, если кто-то задается вопросом, почему я не использую window.open.

<html>
<head>
  <title>Links</title>
  <select id="selectbox" name="" onchange="selectedLink(this);" ;>
    <option value="https://www.google.com" selected>Google</option>
    <option value="https://www.microsoft.com">Microsoft</option>
    <option value="https://www.apple.com">Apple</option>
  </select>
  <button onclick="openInTab(pSelect);">Open</button>
  <script type="text/javascript">
    function selectedLink(getLink) {
      var pSelect = getLink.value;
    }

    function selectedLink(getLink) {
      var selectIndex = getLink.selectedIndex;
      var selectValue = getLink.options[selectIndex].text;
      var pSelect = selectValue;
    }

    function openInTab(source) {
      var newTab = safari.self.browserWindow.openTab();
      newTab.url = source;
    }
  </script>
</head>
</html>

Возвращает:

ReferenceError: Can't find variable: pSelect

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Попробуйте вместо этого.Если вы хотите использовать

var newTab = safari.self.browserWindow.openTab();
newTab.url = source;

, тогда продолжайте.Что я сделал, чтобы решить вашу ошибку pSelect и получить необходимую переменную.

function openInTab() {
      var source = document.getElementById('selectbox').value;
      console.log(source);
      var newTab = window.open(source, '_blank');
    }
<html>
<head>
  <title>Links</title>
  <select id="selectbox">
    <option value="https://www.google.com" selected>Google</option>
    <option value="https://www.microsoft.com">Microsoft</option>
    <option value="https://www.apple.com">Apple</option>
  </select>
  <button onclick="openInTab();">Open</button>
</head>
</html>
0 голосов
/ 24 декабря 2018

Вам не нужно передавать это в функцию.Просто используйте id элемента select, чтобы получить выбранное значение.

Попробуйте следующим образом:

function openInTab() {
  var pSelect = document.getElementById('selectbox').value;
  console.log(pSelect)
  //var newTab = safari.self.browserWindow.openTab();
  //newTab.url = pSelect;
}
<html>
<head>
  <title>Links</title>
  <select id="selectbox" name="";>
    <option value="https://www.google.com" selected>Google</option>
    <option value="https://www.microsoft.com">Microsoft</option>
    <option value="https://www.apple.com">Apple</option>
  </select>
  <button onclick="openInTab();">Open</button>
  <script type="text/javascript">
    
  </script>
</head>
</html>
...