javascript - 在 Chrome 扩展中注入(inject) Jquery 对话框

标签 javascript jquery html google-chrome google-chrome-extension

我只是开发 chrome 扩展的新手,也是 javascript 的新手。我想在用户单击 chrome 扩展上的按钮时显示 Jquery 对话框。我已经寻找了将近一周,但没有成功。

更新: 我目前正在研究这个。然而似乎没有任何作用。我正在做的事情有什么问题吗?

Manifest.json

{
"name": "name",
"version": "1.0",
"description": "desc",
"manifest_version":         2,
"browser_action": { "default_icon": "four.png" },
"permissions": [ "tabs", "http://*/*" ],
"background": {
    "page": "background.html"
  },
"content_scripts": [ {
    "all_frames": true,
    "js": [ "jquery.js", "content.js" ],
    "matches": [ "http://*/*", "https://*/*" ] 
} ]
}

背景.html

chrome.tabs.executeScript(null, {file:"jquery.js"}, function() {
chrome.tabs.executeScript(null, {file:"content.js"});
});

内容.js

var layerNode= document.createElement('div');
layerNode.setAttribute('id','dialog');
layerNode.setAttribute('title','Basic dialog');
var pNode= document.createElement('p');
    console.log("msg var: "+massage); 
    pNode.innerHTML  = massage;


layerNode.appendChild(pNode);
document.body.appendChild(layerNode);

$("#dialog").dialog({
    autoOpen: true, 
    draggable: true,
    resizable: true,
    height: 'auto',
    width: 500,
    zIndex:3999,
    modal: false,
    open: function(event, ui) {
        $(event.target).parent().css('position','fixed');
        $(event.target).parent().css('top', '5px');
        $(event.target).parent().css('left', '10px');
    }

});

最佳答案

如果您打开 Chrome 开发者控制台,您将看到问题所在:

未捕获类型错误:对象 [object Object] 没有方法“对话框”

这只是因为 dialog 方法不是 jQuery 的一部分,it's part of jQuery UI 。您必须下载 jquery-ui.js 脚本,并将其与其他两个脚本一起注入(inject)。
请注意,为了使 UI 正常工作,您还需要注入(inject) jQuery-UI CSS。

顺便说一句,由于您在 list 中声明了内容脚本,因此它将被注入(inject)到 url 与您的模式匹配的所有页面上(此处为 http://*/*https://*/*)。因此,以编程方式将其注入(inject)后台页面是没有用的:实际上,您将脚本注入(inject)两次。

关于javascript - 在 Chrome 扩展中注入(inject) Jquery 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19555662/

相关文章:

javascript - YouTube html5 播放列表在 IE9 中不起作用

html - 内部 div 滚动时窗口的 100% 高度

javascript - AJAX:列出目录的内容。无法解析网址

javascript - 检查两个对象是否有公共(public)子对象

javascript - jQuery - 将点击添加到队列前面

javascript - jquery循环遍历 anchor 以匹配悬停 anchor 的类并应用css

jquery - 用 jquery 替换 html 的多个实例

javascript - 忽略评论标签或使用 JS 将文本更改为反斜杠

javascript - 将视频源对象推送到 Jwplayer Multiple Sources 对象

javascript - 为什么 jQuery html 在与表单一起使用时,效果与 ReplaceWith 类似?