在Firefox和Safari中,我设法用window.addEventListener('DOMContentLoaded',PageShowHandler,false)注册DOMContentLoaded事件; 通过将此语句插入到插入的js脚本中,或者更清楚地,在加载页面的dom之后执行,我的特定函数设置为每次加载此特定页面的DOM时运行.
我似乎无法在Chrome中执行此操作.我使用chrome.tabs.onUpdated等事件制作了一些技巧,但它并不适用于所有实例; 所有这些事件都没有达到DOMContentLoaded所实现的目标.例如,当我点击我网页上的特定链接时,这不会注入我的代码,因为我的DOMContentLoaded事件可能已经完成.
window.addEventListener('DOMContentLoaded', PageShowHandler, false);
Run Code Online (Sandbox Code Playgroud)
引入inject.js似乎没有注册事件.
这是显而易见的:
{
"name" : "gMail Adder ",
"version" : "1.0",
"description" : "Google Chrome Gmail Adder",
"options_page": "options.html",
"background_page": "background.html",
"run_at": "document_start",
"permissions": [
"tabs",
"history",
"http://*/*",
"https://*/*"
],
"content_scripts": [
{
"matches": ["*://*.google.mail.com/*", "https://*.google.mail.com/*" ,"http://mail.google.com/*" ,"https://mail.google.com/*", "https://www.google.com/*", "http://www.google.com/*", "file:///*"],
"css": ["toggle.css"],
"js": ["jquery-1.4.4.min.js", "inject.js"]
}
],
"browser_action" : {
"default_icon" : "Quest Icon 11.png",
"default_popup": "popup.html"
}
}
Run Code Online (Sandbox Code Playgroud) 我已经得到了代码,它应该在一个字节内移动一点位置.它有效,但我的问题是关于别的什么?
我做错了什么以及我在做的关于example_byte和new_byte的分配方面做得对吗?这个简单的程序太麻烦了吗?我应该没有使用malloc并让编译器更好地完成脏工作?
这里有一些人对评论部分的看法:链接.
#include <stdio.h>
#include <malloc.h>
typedef unsigned __int8 byte;
byte move(byte* our, int indexold, int indexnew)
{
byte oldvalue;
byte newvalue;
byte valuetochange;
valuetochange = 0x01 & ((*our)>>indexold); // get the value of the bit to be moved
printf("value to change : %d\n", valuetochange);
oldvalue = (*our) & (~(1<<(indexold))); // del the bit from position indexold
oldvalue = oldvalue & (~(1<<(indexnew))); // del the bit from position indexnew
printf("deleted: %x\n", oldvalue);
newvalue …Run Code Online (Sandbox Code Playgroud)