小编Raz*_*man的帖子

我可以在GitHub上的要点上发出拉动请求吗?

我可以在GitHub的其他一些要点上提出拉取请求吗?

我知道我拥有的要点的fork,clone和commit工作流程.我想知道我是否可以请求用我的前叉更新别人的要点.

git gist github pull-request

185
推荐指数
5
解决办法
2万
查看次数

如何克隆或重新调度DOM事件?

我正在寻找一种简单而抽象的方法来克隆或重新调度DOM事件.我对克隆DOM节点不感兴趣.

我已经尝试了一下,阅读了DOM Events规范,但我没有找到明确的答案.

理想情况下,我正在寻找一些直截了当的东西:

handler = function(e){
  document.getElementById("decoy").dispatchEvent(e)
}
document.getElementById("source").addEventListener("click", handler)
Run Code Online (Sandbox Code Playgroud)

当然,这个代码示例不起作用.有一个DOM例外,说明事件当前正在调度 - 显然.

我想避免手动创建新事件document.createEvent(),初始化它们并调度它们.

这个用例有一个简单的解决方案吗?

javascript events dom webkit

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

如何创建独立的browserify bundle直接导出到窗口?

我想创建一个独立的browserify包,它将导出的对象直接附加到window对象,而不是嵌套在附加到的包装器对象下window.

这样做,browserify忽略窗口:

browserify main.js --standalone window > bundle.js
Run Code Online (Sandbox Code Playgroud)

main.js文件如下所示:

var ModuleA = require('./module-a.js');
var ModuleB = require('./module-b.js');

module.exports = {
  ModuleA: ModuleA,
  ModuleB: ModuleB
}
Run Code Online (Sandbox Code Playgroud)

我希望两个模块直接在全局命名空间中公开:window.ModuleAwindow.ModuleB.

文件没有提供明显的解决方案.

你能帮我吗?

browserify

11
推荐指数
2
解决办法
6014
查看次数

Chrome DevTools扩展:如何从内容脚本中的元素面板中获取所选元素?

我已经完成了我的研究并且在这方面挣扎了一段时间,但我需要你的帮助.

我正在构建Chrome DevTools扩展程序.它应该从"Elements"面板传递当前选定的元素,作为对内容脚本中定义的JS对象的引用.

重要的是我将引用传递给所选元素,或者从内容脚本中识别元素的其他方式.

我了解Chrome DevTools中"孤立世界"的工作流程.我也理解扩展页面,后台页面和内容脚本之间的消息传递.这只发生在JSON原语中,因此没有JS范围传递.

如何将devtools Elements面板中选定的元素传递给检查页面中的内容脚本?

编辑

这是我目前所知道的:

获取对所选元素的引用:

chrome.devtools.inspectedWindow.eval("(" + function(){ console.log($0) }.toString() + ")()")
Run Code Online (Sandbox Code Playgroud)
  • 该函数表达式将在被检查页面的上下文中运行,而不是在devtools扩展的上下文中运行,而不是在内容脚本的"孤立世界"的上下文中运行.我不相信可以使用闭包传递对不同上下文的引用.

  • $0无法返回对所选DOM元素的引用,因为由于循环引用,无法将其序列化为JSON.

  • chrome.devtools命名空间是不可用的devtools扩展页之外.的$0引用不能在所评估的表达式之外使用chrome.devtools.inspectedWindow

解决方法

作为一种解决方法,我选择使用共享DOM来使用数据属性标记所选元素,并使用它在内容脚本的上下文中重新选择它.消息传递用于传递数据属性标记.

这是代码的简化版本:

devtools扩展页面中:

// setup a communication port
port = chrome.runtime.connect({name: "devtools"});

chrome.devtools.panels.elements.onSelectionChanged.addListener(function(){

  // expression to run in the context of the inspected page
  var expression = "(" + mark.toString() + ")()"

  // evaluate the expression and handle the result
  chrome.devtools.inspectedWindow.eval(expression, dispatchToContentScript)
});


function …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension google-chrome-devtools

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

如何在 Chrome 网上应用店等待审核时更新扩展程序?

我的Chrome 网上应用店中有一个扩展程序正在等待审核。我发现它有一个重大错误。

开发人员仪表板不允许上传更新的包,而另一个包正在等待审核。

如何撤回等待审核的程序包,以便上传已修复错误的更新程序包?

google-chrome-extension chrome-web-store

5
推荐指数
0
解决办法
684
查看次数