首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome-扩展,如何编辑弹出窗口,而不是网页

Chrome-扩展,如何编辑弹出窗口,而不是网页
EN

Stack Overflow用户
提问于 2015-01-03 16:47:36
回答 1查看 1.1K关注 0票数 0

基本上,我如何修改/更改扩展弹出的内容,而不是用户正在浏览的网页。

和,MAke下拉列表工作!如果选择第一个下拉列表,我有2个下拉列表,发送到服务器并检索数据,然后更新第二个

我试过用$("body").append('tasddadasdsssdet');

但是它最终修改了web=page的html,而不是我的chrome扩展的html。

如何从第一个下拉列表中检测到更改,以便相应地更新第二个下拉列表。它似乎正常工作正常,但当涉及到铬,它将无法工作。

这是Fiddle

http://jsfiddle.net/g3Yqq/2/

我已经把分机上传到https://www.mediafire.com/?3yske787di87780

HTML

代码语言:javascript
复制
<!doctype html>
<html style="width: 270px;">
    <head >
        <title>BCA Auto Login</title>
        <script src="jquery.js"></script>
        <script type="text/javascript" src="login.js"></script>
    </head>
    <body>

<select id="select1">
    <option value="">Select sth</option>
    <option value="1">1st option</option>
    <option value="2">2nd option</option>
    <option value="3">3rd option</option>
</select>

<select id="select2">
    <option value="">Select from select1 first</option>
</select>
    </body>
</html>

舱单‘

代码语言:javascript
复制
{
  "manifest_version": 2,

  "name": "Admin Extension",
  "description": "Personal Extension",
  "version": "1.0",

  "permissions": [
    "unlimitedStorage",
    "activeTab",
    "background",
    "tabs",
    "storage",
    "webRequest",
    "webNavigation"
  ],
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["jquery.js","login.js"]
    }
  ]

}

登录扩展

代码语言:javascript
复制
$("body").append('tasddadasdsssdet');
alert('test');
$('#select1').change(createSelect2);
$('#select2').change(selectSelect2);

function createSelect2(){
    var option = $(this).find(':selected').val(),
    dataString = "option="+option;
    if(option != '')
    {
        $.ajax({
            type     : 'GET',
            url      : 'http://www.mitilini-trans.gr/demo/test.php',
            data     : dataString,
            dataType : 'JSON',
            cache: false,
            success  : function(data) {          
                var output = '<option value="">Select Sth</option>';            
                $.each(data.data, function(i,s){
                    var newOption = s;

                    output += '<option value="' + newOption + '">' + newOption + '</option>';
                });            
                $('#select2').empty().append(output);
            },
            error: function(){
                console.log("Ajax failed");
            }
        }); 
    }
    else
    {
        console.log("You have to select at least sth");
    }
}

function selectSelect2(){

    var option = $(this).find(':selected').val();
    if(option != '')
    {
        alert("You selected: "+option);
    }
    else
    {
        alert("You have to select at least sth");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-01-03 17:01:36

问题是:

代码语言:javascript
复制
"content_scripts": [
  {
    "matches": ["<all_urls>"],
    "js": ["jquery.js","login.js"]
  }
]

content_script在网页上下文中运行,而不是在弹出窗口中运行。

我猜这个login.js脚本会覆盖弹出式的。

所以,如果你去掉这部分,它应该能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27757113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档