Tag: 谷歌铬扩展

chrome扩展:尽管run_at:document_idle,js脚本也会过早触发

从理论上讲,如果我设置了run_at,那么在页面完全加载后,我用来选择页面上元素的.js就会触发。 但似乎并非如此。 在我的content.js中,我有 “content_scripts”: [ { “js”: [“extensions/jquery-2.2.2.min.js”, “content.js”], “run_at”: “document_idle” } ] 在我的content.js中,我只是: alert(“alert”); console.log(“hello”); var fullname2 = $(‘#topcard’).find(‘.profile-info’).find(‘h1’).text(); console.log(fullname2); 警报和第一个console.log都可以正常工作。 第二个控制台日志不记录任何内容,因为选择器未能选择任何内容。 我知道这个,因为如果我为content.js代码块添加一个setTimeout,并等待2秒,第二个控制台日志会正确显示fullname2。 知道为什么content.js显然在页面完全加载之前触发,这样选择器找不到任何东西?

Keydown哪个不能正常使用Chrome扩展程序

我一直在努力解决谷歌扩展的问题,你一直是我最后的希望! :)) 好吧,我想点击我的chrome扩展程序上的按钮,这将导致页面扩展程序上的keydown模拟正在运行。 我认为chrome在我的想法上有一些安全问题,它会阻止键盘模拟(使事件isTrusted:false)并删除哪个属性。 我写的函数在jsfiddle上工作正常,但看起来chrome扩展以不同的方式完成它。 这是内容脚本文件: chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { if(request.action == “scrollToTop”){ } else if(request.action == “scrollToBottom”){ } else if(request.action == “enter”){ triggerKeyboardEvent(document,13); } function triggerKeyboardEvent(el, keyCode){ var event = new Event(“keydown”, {“bubbles”:true, “cancelable”:true}); event.which = keyCode; el.dispatchEvent(event); } }); chrome.runtime.sendMessage({action : “show”}); 登录jsFiddle写道: Event {isTrusted: false, which: 13} 登录网站: document.addEventListener(‘keydown’,function (e) { […]

奇怪的chrome扩展问题:将iframe注入gmail

问题:Chrome侧边栏 很长一段时间,我想要一个Chrome扩展程序,将其他内容放在Gmail的边栏中,就像Remember the Milk Gmail扩展程序一样 。 看起来我并不孤单2但是Chrome开发人员使这个function比Firefox 3更难。 在没有使用几个hacks和变通办法function之后,我使用了extensionizr和其他人的代码来编写我的第一个Chrome扩展程序 。 目的是让我有一个带有待办事项列表的侧边栏或我希望在我的Chrome标签中提供的任何iframe ,尤其是我的Gmail标签。 问题:Gmail html网页中的iframe 我遇到的问题是使用https://todoist.com/作为我的iframe src,它适用于我尝试过的除Gmail之外的每个标签。 需要注意的是: 它适用于某些Gmail帐户,但不适用于其他帐户 。 我找不到会导致这种情况的任何差异。 我已尝试禁用所有其他扩展程序,以防出现兼容性问题,但没有运气,即使所有内容都已激活,也可以在某些Gmail帐户中使用。 我已经尝试禁用所有实验室并更改所有设置以匹配但仍然没有骰子。 SSL干扰的另一个角度(但有非常奇怪的症状)? 我倾向于认为这是一个SSL问题,因为Gmail不喜欢将iframe与非HTTPS内容嵌入,但这没有意义,因为它适用于某些Gmail帐户,而不是其他帐户。 任何想法,意见,建议都会非常感激,因为我是一个完全新手并完全陷入困境。 更多信息,如果有帮助:当我编辑页面源时,除了html和body标签以及注入的iframe之外,我可以逐字删除Gmail页面中的所有内容,它仍然显示为空白,就像内容未被内容抓取一样iframe src首先以某种方式…… 附录第二个:a)记录网络数据,使用工作帐户通过GET请求从SSL站点成功提取数据。 在非工作帐户上,没有提出任何请求。 b)即使我加载了Gmail,然后将DOM剥离为裸HTML和body标签,然后将iframe注入空白。 源如下,但没有请求,加载或显示内容。 wtactualf?

我怎么知道通过javascript显示html的部分内容

我想得到当前时间内真正向用户显示的页面的所有href元素(仅在浏览器框架内部,而不是上方或下方的部分)。 例如,如果用户在页面中向下滚动,我想进入我的javascript其他元素。 我能做到吗? 如果没有,我可以通过Chrome扩展程序进行操作吗?

将变量传递给Chrome扩展程序中的徽章文本

我已经构建了一个扩展,它从页面上的div中获取一些信息并将其存储在名为“div”的变量中。 我现在需要将该值传递给我的background.js文件,以便我可以更新徽章以反映该变量中的文本。 我已经阅读了sendMessage信息,但每次我将代码行添加到我的页面时,它似乎打破了扩展,所以我肯定做错了。 这是没有setBadgeText信息的代码(当前正在运行)。 getQueue.js var myVar = null; setFunction(); function setFunction() { myVar = setInterval(function () {myTimer();}, 10000); } function myTimer() { var THRESHOLD = 0; var div = document.getElementById(“sessions_queued_now_row-000”); var num = parseInt(div.innerText); // Here is where I want to pass div to background.js to update the badge text if (num >= THRESHOLD) […]

Chrome扩展程序:如何将变量从内容脚本传递到background.html

我无法弄清楚如何将变量(或变量数组)从内容脚本传递到后台页面。 我想要做的是用我的内容脚本找到某些DOM元素,然后将它们发送到我的后台页面,这样我就可以用它们创建跨域XMLHttpRequest(将它们存储在不同站点的数据库中)。 我的代码如下。 我知道名为“serialize”的变量没有被传递(我不希望它基于我当前的代码但是在那里有它所以它更容易看到我想要做什么。)那么我怎么能通过一个从内容脚本到后台页面的变量? 我的内容脚本: function onText(data) { alert(“Great Success!!”); }; $(“#insertprofile”).click(function(){ serialize = $(“.certaininputs”).serialize(); chrome.extension.sendRequest({‘action’ : ‘insertprofile’, ‘serialize’ : serialize}, onText); }); 我的背景页面: function insertprofile(serialize) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(data) { if (xhr.readyState == 4) { if (xhr.status == 200) { var data = JSON.parse(xhr.responseText); callback(data); } else { callback(null); […]

带有动态post的Facebook上的Chrome扩展程序

对不起,我觉得这篇文章可能存在,但我找不到。 也许我用错了字。 我正在制作Chrome扩展程序,查看Facebookpost并为他们做些什么。 我的内容脚本正确地获取post,但是当用户向下滚动时生成的新内容不会被捕获,因为它们稍后出现。 我尝试连接到一个ajaxComplete处理程序,但这不起作用( Chrome扩展Javascript来检测动态加载的内容 )我不确定我是否做错了或者这不是我想要的。 那么,如何在用户注意到之前检测这些新post并更改它们的内容? 任何提示都表示赞赏。 谢谢!

$(document).click()在chrome扩展中不起作用

我正在创建一个chrome插件,它显示了我在页面底部添加的div标签中的网页上单击的元素。 当我点击浏览器操作时,插件显示为我在底部设计的。 但是脚本中脚本的另一部分不起作用, 我真的很喜欢chrome -plugins,拜托他 的manifest.json { “name”: “Iframe”, “description”: “”, “version”: “1”, “manifest_version”: 2, “background”:{ “scripts”:[“background.js”] }, “browser_action”: { “default_title”: “Make this page red” }, “permissions”: [ “” ] } myscript.js var iframe = document.createElement(“iframe”); var div = document.createElement(“div”); div.setAttribute(“src”, “”); div.setAttribute(“style”, “position:fixed; z-index:10000;bottom:0px;left:0px; border:none; width:100%; height:100px; background-color:#ccc;border:#000 solid 3px;”); div.setAttribute(“scrolling”, “no”); div.setAttribute(“frameborder”, “0”); […]

检测Chrome浏览器是否启用了扩展程序

我正在为Wordpress编写一个小插件,我需要检测chrome扩展是否为“Enabled”。 目前我只能通过连接到其中一个资源来检测扩展是否“已安装”。但是,我需要检测安装是“已启用”还是“已禁用” 这可能吗? 谢谢你的时间。

单击gmail中的链接不会触发我的jquery事件,我该怎么做才能修复它?

单击gmail中的链接时,不会触发“单击”事件。 单击其他站点中的链接工作,然后单击gmail工作中的简单文本。 但是当你点击Gmail中的链接时却没有。 $(‘body’).on(‘click’, function(event) { console.log(“Entered function”); }); 还试过以下,但没有运气。 $(‘a’).click(function(){ console.log(“Entered function”); });