Расширение Google Chrome, которое отправляет URL-адрес изображения в определенное текстовое поле.

Я пытаюсь создать расширение Google Chrome, которое позволяет пользователю щелкнуть изображение во всплывающем окне и отправить URL-адрес изображения в текстовое поле определенного веб-сайта; Я не вижу ничего плохого в своем коде, но он отказывается работать.

Вот мой manifest.json

{
"manifest_version": 2,

"name" : "Gifs",
"description": "Gifs",
"version": "1",

"permissions": [
    "activeTab", "http://www.cssflow.com/snippets/login-form/demo", "http://*/*", "https://*/*"
],

"browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
}
}

Вот мой popup.html

<script src="jquery.js"></script>
<script src="popup.js"></script>
<img src="http://www.vidble.com/cayujFfA0f.gif" border="0">

<br><br>

<img src="http://www.vidble.com/U8l5gHvN5f.gif" border="0">

Вот мой popup.js (идентификатор текстового поля на веб-сайте, URL-адреса которого я хочу вставить, - «логин»).

$(document).ready(function() {
  $("img").click(function() {
    var imageurl = $(this).attr('src');
    var script = 'var form = document.getElementById("input:#login");' +
      + 'form.value = (form.value + " ' + imageurl + '");';
    chrome.tabs.executeScript({code : script});
    window.close();
  });
});

В консоли появляется следующая ошибка:

неожиданный конец ввода: var form = document.getElementById ("login"); NaNhttp: //www.vidble.com/cayujFfA0f.gif ");

Любая помощь будет оценена. Заранее спасибо.


person vpt    schedule 02.06.2015    source источник
comment
Define отказывается работать и отредактируйте, чтобы удалить теги фрагмента.   -  person Xan    schedule 02.06.2015
comment
Может, отказывается работать - не самое лучшее описание. Это дает мне ошибку в консоли неожиданный конец ввода: var form = document.getElementById (login); NaNhttp: //www.vidble.com/cayujFfA0f.gif);   -  person vpt    schedule 02.06.2015


Ответы (1)


Ваша проблема вызвана лишним + в вашем назначении var script. Чудеса JavaScript:

'a' + 'b' + 'c'
-> 'abc'

'a' + + 'b' + 'c'
-> 'aNaNc'

Это связано с тем, что второе выражение интерпретируется как 'a' + (+ 'b') + 'c', поэтому 'b' приводится к числовому значению перед объединением с другими строками.

person rsanchez    schedule 02.06.2015
comment
Вау! Большое спасибо! Вы не представляете, как долго я работал над этим простым скриптом. Я подумывал начать все заново, пока не увидел это. - person vpt; 02.06.2015