好的,下面是一些演示问题的示例代码.如果我点击Firefox中的按钮,第一个选项就会消失.如果我点击chrome中的按钮,没有任何反应,或者更确切地说,如果我检查第一个选项,它确实具有属性"style ='display:none'",但html页面上的选项本身并未隐藏.
<form>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<input type="button" onclick="document.getElementsByTagName('option')[0].style.display='none'" value="hide option 1">
</form>
Run Code Online (Sandbox Code Playgroud)
为什么这不适用于chrome?
我用基本的文本编辑器,记事本编辑了很多HTML页面.当我去验证它们时,验证服务正在说div
这是一个未关闭的标签.我倾向于发现自动错误报告,例如这些报告往往不太可靠,即它们会给你一个行号和错误但通常错误实际上完全在文件的另一部分.
我只是想知道是否有任何免费的轻量级html编辑器具有查找标签的结束标签的功能.例如,你单击一个标签,然后单击一个快捷方式,程序将跳转到结束标签,我知道这个功能是在homesite,但我没有homesite,并且它有点笨重的程序.
或者甚至更好的任何可以突出显示未封闭标签的在线HTML验证服务?
总而言之,我想知道如何找到没有结束标签的html标签 - 是否有免费的html编辑器或简单的在线服务可以帮助解决这个问题?
我通过 Greasemonkey 脚本/opera 扩展将以下代码注入到网页中以捕获该history.pushState
命令,这样我就可以在它触发时进行一些处理,并且仍然允许该pushState
命令在之后继续。
(function(history){
var pushState = history.pushState;
history.pushState = function(state) {
if (typeof history.onpushstate == "function") {
history.onpushstate({state: state});
}
alert('pushstate called')
return pushState.apply(history, arguments);
}
})(window.history);
Run Code Online (Sandbox Code Playgroud)
该代码在 FF4 和 Chrome 中工作正常,但在 Opera 11 中,如果页面调用命令,我会收到以下错误history.replaceState
:
未捕获的异常:TypeError:'window.history.replaceState'不是函数
有谁知道如何修复上述代码以与 Opera 以及 Chrome 和 Firefox 一起使用?
我需要将Greasemonkey脚本转换为无重启的Firefox插件.
过去可以使用Scriptify扩展程序轻松完成此操作,但扩展程序并未与Firefox浏览器的最新更改保持同步,并且不再有效.
有没有其他方法可以实现这一目标?
我的Chrome扩展程序使用邮件传递从后台页面上扩展程序内置的localstorage区域中检索各种值.
关于chrome消息传递我喜欢的事情是,它允许你在sendMessage调用中包含一个回调函数,如下所示:
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
Run Code Online (Sandbox Code Playgroud)
并且相应的邮件接收代码如下所示(Chrome扩展文档中的示例代码):
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试将我的扩展转换为Safari扩展格式,但我无法弄清楚如何将Chrome sendMessage/onMessage函数映射到Safari的
safari.self.tab.dispatchMessage(name, data)
消息处理函数
甚至可以在Safari的dispatchMessage函数调用中包含回调函数吗?如果没有,我应该如何解决这个限制?
每隔一段时间,我的 chrome 扩展程序的background.js页面就会冻结,我不知道是什么原因造成的。
当background.js文件冻结时,它不再响应来自内容脚本的消息,当我尝试通过扩展管理器打开后台页面来检查它时,会弹出窗口,但它保持空白,并且不会出现界面。
我在后台页面所做的唯一事情是消息传递和检索本地存储变量。
我无法弄清楚是什么导致了这个问题,这个错误似乎只是在我从chrome.extension api转换到新的chrome.runtime api 后才发生的
谁能告诉我这里出了什么问题吗?或者帮我弄清楚?谢谢!
这是background.js文件的完整代码
if (!chrome.runtime) {
// Chrome 20-21
chrome.runtime = chrome.extension;
} else if(!chrome.runtime.onMessage) {
// Chrome 22-25
chrome.runtime.onMessage = chrome.extension.onMessage;
chrome.runtime.sendMessage = chrome.extension.sendMessage;
}
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.method == "getLocalStorage")
sendResponse({data: localStorage[request.key]}); // decodeURIComponent
else if (request.method == "setLocalStorage")
sendResponse({data: localStorage[request.key]=request.value});
else
sendResponse({}); // send empty response
});
Run Code Online (Sandbox Code Playgroud)
是否可能发生死锁情况导致页面冻结?它不会导致CPU发疯,所以我猜这不是一个无限循环。
这里更新的 是按照要求的manifest.json
{
"manifest_version": 2,
"content_scripts": [ {
"exclude_globs": [ …
Run Code Online (Sandbox Code Playgroud) <style>
div [data-endpoint="/one/two/three/"] {display:none}
</style>
<div data-endpoint="/one/two/three/">
example text
</div>
Run Code Online (Sandbox Code Playgroud)
这里的实时代码示例:http://jsfiddle.net/DDUNp/2/
javascript ×5
firefox ×2
html ×2
coding-style ×1
css ×1
greasemonkey ×1
history ×1
opera ×1
safari6 ×1
validation ×1