2012-12-26 41 views
4

我正在编写一个Chrome扩展程序,允许用户从单个页面登录到社交媒体网站。我可以创建一个新的隐身窗口,但无法操作我创建的窗口内的任何内容。我想为新窗口创建一个onload函数来执行jquery。感谢您让我指出正确的方向!如何操作Chrome扩展程序中的新窗口?

+1

你有没有尝试脚本注入回调标签创建/更新()? – Sudarshan

+0

我还没有,但我不知道从哪里开始。你可以指点我的任何好资源? –

+2

如果你想操纵隐身,你必须要求用户在设置 – gengkev

回答

6

请参考下面的演示操纵新建的隐身window创建并注入了一些jquery。

References

manifest file

这是用来绑定许可和注册后台网页以extension.Ensure它具有所需的所有权限。

{ 
"name":"Hanlder for Incognito window", 
"description":"http://stackoverflow.com/questions/14044338", 
"version":"1", 
"manifest_version":2, 
"background":{ 
    "scripts":["background.js"] 
}, 
"permissions":["tabs","http://www.google.co.in/"] 
} 

background.js

jQuery注入新的隐身窗口,从背景页。

var _tabId_To_Look_For; 

// Create a new incognito Window with some arbitary URL and give it focus 
chrome.windows.create({ 
    "url": "http://www.google.co.in/", 
    "focused": true, 
    "incognito": true 
}, function (window) { 
    // Trace tab id which is created with this query 
    _tabId_To_Look_For = window.tabs[0].id 
}); 

// Add an event Listener for new tab created 
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { 
    // Inject script into chosen tab after it is loaded completely 
    if (tabId == _tabId_To_Look_For && changeInfo.status == "complete") { 
     // Inject Jquery and in current tab 
     chrome.tabs.executeScript(tabId, { 
      "file": "jquery.js" 
     }, function() { 
      // I am in call back 
      console.log("Injected some jquery "); 
     }); 
    } 
}); 

确保您已启用隐身访问权限。

enter image description here

Output

您会发现使用jQuery的新窗口注入。

+1

今天我刚学会如何使用'file'选项将脚本注入标签,谢谢! – jjperezaguinaga

+0

太棒了!谢谢! –

相关问题