我正在尝试制作一个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(我要插入网址的网站上文本字段的ID为“登录”。)

$(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“)”;


任何帮助将不胜感激。提前致谢。

最佳答案

您的问题是由分配给+的额外var script引起的。 JavaScript奇观:

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

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


这是因为第二个表达式被解释为'a' + (+ 'b') + 'c',因此'b'在与其他字符串连接之前被强制转换为数值。

关于javascript - Google Chrome扩展程序,可将图像网址发送到特定的文本字段中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30601183/

10-11 05:40