我正在尝试制作一个Google Chrome扩展程序,允许用户在弹出窗口中单击图像并将图像网址发送到特定网站文本字段;我认为我的代码没有任何问题,但它拒绝工作。
这是我的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是&#39;登录&#39;。)
$(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(&#34; login&#34;); NaNhttp://www.vidble.com/cayujFfA0f.gif");
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:3)
您的问题是由+
的作业中额外var script
引起的。 javascript的奇迹:
'a' + 'b' + 'c'
-> 'abc'
'a' + + 'b' + 'c'
-> 'aNaNc'
这是因为第二个表达式被解释为'a' + (+ 'b') + 'c'
,因此'b'
在与其他字符串连接之前被强制转换为数值。