2016-04-26 5 views
0

Я работаю над расширением хром! Теперь мое расширение принимает входные данные от пользователя, а затем по щелчку кнопки перенаправляет его на страницу и заполняет введенные данные в определенное текстовое поле. Я могу перенаправить на страницу, но когда я пытаюсь получить элемент, используя имя id, он дает ошибку null! поскольку javascript работает до того, как страница загружается должным образом. Я попытался, но не смог найти способ!Как запустить Javascript после загрузки страницы в chrome extension?

В моем сценарии содержимого У меня есть эта функция:

function redirect(data) 
{ 
location.replace("xyz.html"); 
     window.onload = function() 
     { 
      alert(); 
      var textField = document.getElementById("textField"); 
      textField.value = data ; 
     } 
} 

ответ

0

Когда вы звоните location.replace, вы загружаете новую страницу, ваш текущий документ будет закрыт, который означает, что вы скрипт контента, впрыскиваемого в этом документе не будет Работа.

Скажем, вы в настоящее время страницы А и перенаправить на страницу B, один обходной путь будет, когда вы получаете данные из А, сохранить его в chrome.storage или background page, то при перенаправлены B, получить данные из chrome.storage или persistent page.

Пример кода будет выглядеть следующим образом:

chrome.storage.local.get("data", function(results) { 
    var data = results.data; 
    var textField = document.getElementById("textField"); 
    if (textField) { 
     textField.value = data; 
    } else { 
     chrome.storage.local.set({"data": "your data here"}); 
     redirect("your data here"); 
    } 
}); 

function redirect(data) { 
    location.replace("xyz.html"); 
} 
+0

Извините, но я не сильно понимаю! –

+0

@Ram, код примера добавлен. Я имею в виду, что вы всегда можете попробовать получить данные и textField, если textField не является неопределенным, это означает, что скрипт контента запущен на перенаправленной странице, тогда вы можете установить значение textField; в противном случае вы находитесь на первой странице и просто перенаправляете его. –

+0

и как я могу сохранить его на хромированном хранилище? Вы использовали chrome.storage.local.get, но для этого, как сохранить сначала? или я должен просто скопировать это? –

Смежные вопросы