小编FRD*_*FRD的帖子

Chrome扩展程序 - onRequest/sendRequest vs onMessage/sendMessage

检查Chrome扩展中心页面链接的此示例扩展程序,我看到它们已使用

chrome.extension.onRequest.addListener(onRequest);
Run Code Online (Sandbox Code Playgroud)

在background.js页面中,以便收听contentscript.js和

  chrome.extension.sendRequest({}, function(response) {});
Run Code Online (Sandbox Code Playgroud)

在contentscript.js中,以便与background.js页面交谈.

但我无法在网络的任何地方找到这些功能的文档,只提及Google的消息传递指南

chrome.extension.sendMessage(...)
Run Code Online (Sandbox Code Playgroud)

发送,和

chrome.extension.onMessage.addListener(...)
Run Code Online (Sandbox Code Playgroud)

我应该使用哪些功能?sendRequest/onRequest是否已过时?Google的开发指南是否仍然是最新的?

javascript google-chrome google-chrome-extension

21
推荐指数
2
解决办法
1万
查看次数

在Javascript中围绕Function()创建沙箱

我可以将字符串生成的函数(使用Function构造函数)的访问权限限制为父/全局范围吗?

例如:以下代码按原样打印为false,因为该函数正在窗口中存储/修改变量a.

window.a = 4;
Function("a=3;")()
console.log(a === 4);
Run Code Online (Sandbox Code Playgroud)

我可以限制对窗口/父作用域的访问并使其打印为"true"吗?

javascript scope sandbox

9
推荐指数
2
解决办法
1896
查看次数

是否需要将NULL转换为结构指针类型以便在C中进行赋值/比较?

在将指定给结构foo的指针之前,我在学校的老师一直将NULL转换为(struct foo*).例如:

struct foo {
   // smthg else
   struct foo *ptr;
};

struct foo *bar;
bar = (struct foo*)malloc(sizeof(struct foo));
bar->ptr = (struct foo *) NULL;
Run Code Online (Sandbox Code Playgroud)

令我难以置信的是,他唯一一次测试该值是否为NULL(检查链表是否已结束)他执行以下操作

if (aux->ptr != (struct foo *) NULL) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

我问他为什么,如果要"增长"NULL的大小以防止错误或其他什么.但不,他告诉我(非常不情愿,我认为)这是为了防止编译器出现一些可能的错误(wtf?).这真的有必要吗?

编辑:

他教的语言是C.他可能不知道用C语言铸造malloc是不必要的.我想知道他是否只是小心或无能.:P

c null struct pointers

2
推荐指数
1
解决办法
3721
查看次数

Python关于变量范围规则的问题

这是我在维基百科上找到的Python中Quicksort的源代码.

def pivot(v, left, right):
    i = left
    for j in range(left + 1, right + 1):
        if v[j] < v[left]:
            i += 1 # .. incrementa-se i
           v[i], v[j] = v[j], v[i]
    v[i], v[left] = v[left], v[i]
    return i

def qsort(v, left, right):
    if right > left:
        r = pivot(v, left, right)
        qsort(v, left, r - 1)
        qsort(v, r + 1, right)

a = [4,2,4,6,3,2,5,1,3]
qsort(a, 0, len(a)-1)
print a # prints [1, 2, 2, 3, 3, 4, 4, …
Run Code Online (Sandbox Code Playgroud)

python scope quicksort

1
推荐指数
1
解决办法
277
查看次数