草庐IT

swift - 快速可变字典的扩展

全部标签

javascript - 用于扩展 jQuery 的奇怪语法

我最近在另一篇文章(jQuerySetCursorPositioninTextArea)上看到这段代码newfunction($){$.fn.setCursorPosition=function(pos){//functionbodyomitted,notrelevanttoquestion}}(jQuery);在试图理解它在做什么之后花了很长时间,我终于弄清楚它只是创建一个带有参数$的新函数,然后使用jQuery作为参数值调用它。所以实际上,它只是这样做:jQuery.fn.setCursorPosition=function(pos){//functionbodyomitted,n

dom - DOM 扩展/包装究竟是什么?

我有两个主要问题。Object之类的扩展是否算数?什么是DOM包装?http://perfectionkills.com/whats-wrong-with-extending-the-dom/读完那篇文章后,我找不到任何关于DOM包装的信息,也没有任何规范以及究竟什么是DOM扩展,什么不是DOM扩展。 最佳答案 不,Object被指定为Javascript语言的一部分,而DOM是一个API仅在浏览器环境中相关并且是用于“访问和更新文档的内容、结构和样式”(W3C).但是,那篇文章中提供的反对扩展DOM对象的理由之一仍然适用于扩展原生

javascript - Ajax 调用无法使用 list v2 的 chrome 扩展

我正在尝试使用类似这样的基本chrome扩展chrome.omnibox.onInputChanged.addListener(function(text,suggest){varbaseUrl="http://sample.com";varfinalResult=[];$.ajax({url:baseUrl,dataType:"jsonp",success:function(result){for(vari=0;i这适用于list版本1,但是当我将其更改为v2时,出现以下错误。我将不胜感激:)拒绝加载脚本'http://sample.com',因为它违反了以下内容安全策略指令:“sc

javascript - Chrome 扩展加载行为

我正在为chrome扩展开发一个设置页面。在我的options.js文件中,我想用一些默认值初始化设置,为此我使用window.onload=initSettings();。在我的initSettings()函数中,我试图通过document.getElementById("someId")从DOM访问输入。但是这个调用总是返回null。我认为window.onload事件是在所有DOM元素就位后触发的。我做错了什么? 最佳答案 我在options.js文件的顶部有这个-自从我上次使用扩展已经很久了,我不能确定它是否有任何帮助。值得

javascript - 在 Javascript 中是否有命名可变函数和谓词函数的约定?

在Javascript中是否有命名可变函数和谓词函数的约定?例如,在Ruby、Lisp等语言中,改变其内容的函数,如gsub!,通常有一个感叹号作为约定,表示该函数是危险的。或者,如果函数返回一个bool值,如even?,函数将带有一个问号。不幸的是,您不能在Javascript的函数名称中使用像?或!这样的特殊字符,那么Javascript程序员使用什么约定来表示这些特殊类型? 最佳答案 是的,命名返回true|false的函数的通常约定是在其前面加上is,如isDate,isHidden...至于mutate的方法,AFAIK没

Javascript - 获取页面标题和元描述并将它们用作 chrome 扩展的变量

我有一个脚本,它从选项卡中获取标题并将其分配给一个变量。但是,我还需要获取metadesc和title属性,以便在input字段中使用。我不确定我是否可以用这个实现:chrome.tabs.getSelected(null,function(tab){varcurrentTitle=tab.title;});然后我需要获取Meta描述,我不相信我可以从标签数据中获取它。这是我从中获取描述的HTML:这是我用来在扩展之外获取它的Javascript:document.getElementsByName('description')[0].getAttribute('content');鉴

javascript - 如何扩展 EmberJS handlebars 输入助手以支持没有值的属性?

我目前正在使用Ember输入助手来呈现数据绑定(bind)表单控件:{{inputclass="form-control"type="email"value=email}}这会生成以下HTML:HTML5输入控件支持元素的required属性。此属性没有值。尝试将值传递到模板会导致编译错误并使用类似required=true的内容将无法正常运行,因为该属性不为空。如何修改emberTextInputView以包含没有值的属性?我试图对其进行子类化,但API阻止了直接访问。 最佳答案 默认情况下,ember不会映射所有传递给输入Vie

javascript - 如何使用 RequireJS 扩展配置

我使用RequireJS进行编码。我有一个源代码库,但几乎没有不同的前端。这些前端应该使用不同的模块集,所以我必须支持几个RequireJS配置,每个配置用于不同的产品。将模块添加到一个配置中,导致将其添加到少数其他配置中。有没有办法继承/扩展RequireJS配置? 最佳答案 如果你给RequireJS多个配置,它会合并它们。例如,如果您首先进行此调用:require.config({paths:{foo:"path/to/foo",bar:"path/to/bar"}});然后是第二次调用:require.config({pat

javascript - Chrome扩展: wait for storage.同步获取远程数据

我有一个扩展程序可以读取带有时间戳的消息提要并提醒用户注意它们。我跟踪自用户打开消息以来的最高时间戳,低于该时间戳的任何内容均被“已读”。它运作良好,但当用户安装了多个Chrome时,问题就来了:他看到的是他已经在另一台机器上阅读过的项目。输入chrome.storage.syncAPI.我可以设置最高时间戳以在实例之间同步,但这会给我带来竞争条件。如果我在浏览器启动或从sleep中唤醒后立即使用chrome.storage.sync.get,它将获取陈旧的本地数据并且不会等待同步发生-经测试真的。因此,用户仍然会收到警报,即使在警报被清除之前的一小段时间内也是如此-这令人困惑。我可以

javascript - 快速、二进制和 zip 存档逃离 cabal hell

我想使用haste-compiler包来做haskell-to-javascript的事情:jsnavely@beefy:~/project$cabalinstallhaste-compilerResolvingdependencies......Configuringzip-archive-0.2.3...Buildingzip-archive-0.2.3...Preprocessinglibraryzip-archive-0.2.3...[1of1]CompilingCodec.Archive.Zip(src/Codec/Archive/Zip.hs,dist/build/Code