2015-02-27 3 views
0

Я пытаюсь узнать что-то о javascript и столкнулся с этой проблемой. В основном то, что я пытаюсь сделать, это получить URL-адрес, перенаправить на сайт в код и поместить его в текстовое поле и активировать кнопку. Не произнося все это, чтобы получить ответ на THAT, но как хедз-ап, как то, что я нацеливаю для. Так что я нахожусь здесь:Chrome.tabs.executeScript ничего не делает

popup.js:

var url, tab,myNewTab; 
    function init(){ 
    chrome.tabs.query({currentWindow: true, active: true},function(tabs){ 
    url = tabs[0].url; 
    tab = tabs[0] 
    tabId = tabs[0].id; 
    processTab(); 
    }); 
} 

function processTab(){ 
chrome.tabs.update(tabId, {selected: true}); 
if (url.substring(0,5) === "http:") 
{ 

    url = insert(url , 4 , "s"); 
} 
chrome.tabs.update(tabId , { url: "https://alexanderproxy33.appspot.com"}) 



cont() ; 
} 
function insert(str, index, value) { 
return str.substr(0, index) + value + str.substr(index); 
}; 
function cont() 
{ 
chrome.tabs.executeScript(null, {code:"document.getElementById('input').value = url"}); 
}        


init(); 

код с сайта я пытаюсь получить доступ к:

<form action="" method="get" accept-charset="utf-8" target="_blank"> 
        <input name="url" type="text" class="txt" id="input" placeholder="type url here.." onfocus="this.value='';" /> 
        <input type="submit" class="btn" value="Go" /> 
       </form> 

Я пробовал несколько способов обойти это (например, экспериментировать с материалом non-executeScript, помещая немного кода в файл), но ничего не работает, что заставляет меня поверить, что что-то не работает правильно. Поскольку я делаю это, чтобы просвещать себя, любые предложения более чем приветствуются. Спасибо заранее и знать, что я проверить здесь каждый раз, когда я могу, я мог бы занять некоторое время, будет работать

ответ

1

Вы пытаетесь выполнить это в контексте страницы:

chrome.tabs.executeScript(null, { 
    code:"document.getElementById('input').value = url" 
}); 

urlis not defined в страница, которую вы вводите, - в результате чего вы видите.

Вы хотите оценить url в контексте вашей страницы первой:

chrome.tabs.executeScript(null, { 
    // JSON-encode to wrap in quotation marks properly 
    code: "document.getElementById('input').value = " + JSON.stringify(url) 
}); 
+0

Спасибо вы очень много. Не думал, что в рамках исполняемого файла действует новая среда. – stonedevil

+0

По-прежнему не удается получить текст, хотя он, похоже, не работает. Я все еще что-то пропустил? Извините за то, что вы полный любитель – stonedevil

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