console.log不能从chrome.tabs.executeScript中运行 [英] console.log doesn't work from chrome.tabs.executeScript

查看:331
本文介绍了console.log不能从chrome.tabs.executeScript中运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



所以为了这个目的,我从我的背景js中创建了上下文菜单:

  chrome.contextMenus.create({title:title,contexts:contexts,
onclick:genericOnClick});

它与预期一致。后来从genericOnClick我尝试执行我的脚本:

  chrome.tabs.executeScript(null,{code:console。 log('test 1');},function(){
console.log(test 2);
});

我可以看到test 2被打印到控制台,但test 1 。我究竟做错了什么?
我已经尝试将console.log语句添加到单独的js文件中,但它未能打印出来:

  chrome.tabs.executeScript(null,{file:'content_script.js'},function(){
console.log(test 2);
});

注意:我的content_script.js没有在清单中定义。我的清单看起来如下所示:

  {
name:My First Extension,
版本:1.0,
manifest_version:2,
description:示例扩展,
page_action:{
default_icon:图标。 png,
default_popup:popup.html
},
permissions:[
http:// * / *,
https:// * / *,
tabs,
contextMenus
],
background:{
scripts:[sample .js]
},

图标:{
16:icon16.png
}
}

预先感谢您。

解决方案

div>

  // addListener 
chrome.browserAction.onClicked.addListener(function(){
chrome.tabs.executeScript(null,{file:content_script .js},function(){

console.log(test 2);
});
});


//上下文菜单
chrome.contextMenus.create({
title:myTitle,
contexts:['page'],
onclick:function(detail,tab){fn(tab)}
});

so;

 permissions:[
tabs,http:// * / *,https:// * / *
]

chrome.tabs.executeScript(NULL,{代码: document.body.style.backgroundColor = '红'});

或:

  //函数结构
函数hi(){alert(hi); };

//在运行函数(hi)()
之后,函数toString chrome.tabs.executeScript(null,{code:(+ hi.toString()+)() });


I need to execute script once user clicked my context menu item.

So for the purpose I created the context menu from my background js:

chrome.contextMenus.create({"title": title, "contexts": contexts,
                                       "onclick": genericOnClick});

It appears as expected. Later on from the genericOnClick I try to execute my script:

chrome.tabs.executeScript(null, {code: "console.log('test 1');"}, function() {
      console.log("test 2");
  });

I can see that the "test 2" is printed to console but "test 1" never gets printed. What am I doing wrong? I've tried adding the console.log sentence to a separate js file but it failed to print it as well:

chrome.tabs.executeScript(null, {"file": 'content_script.js'}, function() {
      console.log("test 2");
  });

Note: my content_script.js is not defined in manifest. My manifest looks like follows:

{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Sample extension",
  "page_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "http://*/*",
    "https://*/*",
    "tabs",
    "contextMenus"
  ],
  "background": {
    "scripts": ["sample.js"]
  },

  "icons": {
    "16": "icon16.png"
  }
}

Thank you in advance.

解决方案

// addListener
chrome.browserAction.onClicked.addListener(function() {
    chrome.tabs.executeScript(null, {file: "content_script.js"}, function() {

        console.log("test 2");
    });
});


 // Context Menu
chrome.contextMenus.create({
    title: myTitle,
    contexts: ['page'],
    onclick: function (detail, tab) { fn(tab) }
});

so;

"permissions": [
"tabs", "http://*/*", "https://*/*"
]

chrome.tabs.executeScript(null,{code:"document.body.style.backgroundColor='red'"});

or:

// Functional structure
function hi() { alert("hi"); };

// hi function toString after run  function (hi)()
chrome.tabs.executeScript(null, { code: "(" + hi.toString() + ")()" });

这篇关于console.log不能从chrome.tabs.executeScript中运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆