小编Rob*_*b W的帖子

Event.observe函数 - 按类而不是id观察元素

有原型js功能:

Event.observe(element,eventName,handler)

这里元素表示元素的ID.

是否有可能把这里元素的类?

我从第三方获得了带有class属性的元素.

javascript class event-handling prototypejs

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

在C++中意外创建临时对象的方法?

多年前我相信C与C++相比绝对纯净,因为编译器无法生成任何你无法预测的代码.我现在相信反例包括volatile关键字和内存障碍(在多处理器编程或内存映射硬件设备的设备驱动程序中,其中普通汇编语言甚至比C编译器的优化更纯粹).

目前我正在尝试枚举C++编译器可以执行的不可预测的事情.关于C++的主要抱怨是编译器将隐式实例化临时对象,但我相信这些情况都可以预期.我正在考虑的案例是:

  • 当一个类为自己以外的类型定义一个复制构造函数时,不使用该explicit关键字
  • 当类定义重载转换运算符时: operator ()
  • 当函数通过值而不是引用接受对象时
  • 当函数按值而不是按引用返回对象时

还有其他人吗?

c++ temporary object

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

Prototype JS吞下了dom:loaded和ajax回调中的错误?

我无法弄清楚为什么原型会在dom:loaded事件和AJAX处理程序中抑制错误消息.

鉴于以下HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Conforming XHTML 1.1 Template</title>
        <script type="text/javascript" src="prototype.js"></script>
        <script type="text/javascript">
            document.observe('dom:loaded', function() {
                console.log('domready');
                console.log(idontexist);
            });
        </script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

domready事件触发,我在控制台中看到日志,但没有任何错误的迹象.如果你将console.log(idontexist);线移出处理程序,你就得到了

idontexist没有定义

控制台中出错.我觉得有点怪异,在其他事件处理程序,如"点击",你会得到错误信息,似乎这仅仅是dom:loaded有这个问题.

AJAX处理程序也是如此:

new Ajax.Request('/', {
    method: 'get',
    onComplete: function(r) {
        console.log('xhr complete');
        alert(youwontseeme);
    }
});
Run Code Online (Sandbox Code Playgroud)

你不会看到任何错误.这是使用prototype.js 1.6.1,我在文档中找不到这种行为的任何迹象,也没有在这些处理程序中启用错误报告的方法.

我尝试使用FireBug的调试器逐步执行代码,当它遇到dom:loaded处理程序中缺少的变量时,它似乎跳转到名为K的第53行上的函数:

K: function(x) { return x } 
Run Code Online (Sandbox Code Playgroud)

但是怎么样?为什么?什么时候?我在那里看不到任何try/catch块,程序流如何在那里结束?

我知道我可以通过dom:ready在try/catch块中包装我的处理程序来使错误可见,但这不是一个非常舒服的选择.同样适用于为AJAX调用注册全局onException处理程序.

为什么它甚至可以抑制错误?有人遇到过这个吗?

javascript error-handling javascript-framework prototypejs

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

什么是JQuery的$(元素).text()的Prototype等价物?

给出以下代码段:

<div id="myDiv">
  This is my text <span>with a span</span>
</div>    
Run Code Online (Sandbox Code Playgroud)

JQuery可以获取内部字符串:

$('#myDiv').text();
Run Code Online (Sandbox Code Playgroud)

在Prototype中有一种比以下更直观的方式:

$('myDiv').pluck('innerHTML').first().stripTags();
Run Code Online (Sandbox Code Playgroud)

javascript jquery text innerhtml prototypejs

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

当拦截按空格和箭头等按键时停止滚动页面

我正在使用JavaScript和Prototype并从用户那里获取按键.我用这样的代码成功地捕获了返回,空格和箭头:

Event.observe(window, "keyup", function(e) {
  switch (e.keyCode) {
    case Event.KEY_RETURN:
    case Event.KEY_RIGHT:
    case 32:  // space
      // do something
      break;
  }
});
Run Code Online (Sandbox Code Playgroud)

我的问题是空格和箭头一直在滚动页面.有没有办法阻止他们滚动页面?

javascript keyboard events scroll prototypejs

7
推荐指数
3
解决办法
4170
查看次数

如果事先不知道属性名称,如何解析JSON数据?

这是我在jQuery中的响应代码:

var response = $.parseJSON(response);

for (var i = 0; i < response.groupIds.length; i++) {
    console.log(response.groupIds[i], i);
}
Run Code Online (Sandbox Code Playgroud)

每个response.groupIds[i]都是形式{"unknown name":"unknown value"}.

我希望在javascript中访问这两个数据位,当我事先不知道例如unknown name是什么时,我该如何实现呢?

javascript json properties

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

将自定义用户代理与特定的Google Chrome页面/标签相关联

我正在开发Google Chrome扩展程序,我想在标签/页面或弹出窗口(iframe显示为"气泡弹出窗口")中设置特定用户代理,而不会影响其他页面或标签.

可能吗?

javascript user-agent google-chrome http-headers google-chrome-extension

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

如何设置浏览器的自动完成下拉框的样式?

http://dns.themeister.se/styleable.png

如您所见,白盒是我经常使用的用户名.

自动完成框具有白色背景.是否可以将其改为我想要的任何东西?

html css autocomplete

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

chrome.storage.local ["mykey"]未定义

我正在制作Chrome扩展程序,我会将用户的密码存储在本地存储中.我将它存储在popup.js使用中

chrome.storage.local["mykey"] = "xxx";
Run Code Online (Sandbox Code Playgroud)

当我使用时chrome.storage.local["mykey"],我会得到undefined.您能告诉我如何在Chrome扩展程序中存储和检索用户数据吗?

javascript google-chrome google-chrome-extension

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

如何在不支付注册费的情况下向我的域用户发布Chrome扩展程序?

我没有支付"一次性开发者注册费",我已经上传了我的分机号.在我的开发人员仪表板中,它说.

"只需向mydomain.com中的用户发布费用"

如何在不支付"一次性开发者注册费"的情况下,仅在mydomain.com上向用户发布.我无法在任何地方找到这个选项.

google-chrome-extension chrome-web-store

7
推荐指数
2
解决办法
9784
查看次数