我正在寻找最合适有效的方法来绑定javascript事件 ; 特别是onload事件(我希望在页面和所有元素(如图像加载)之后发生事件).我知道在jQuery中有简单的方法可以做到这一点,但我想要更高效的原始javascript方法.
我如何检查textarea是否包含任何内容?
我试过这个代码
if(document.getElementById("field").value ==null)
{
alert("debug");
document.getElementById("field").style.display ="none";
}
Run Code Online (Sandbox Code Playgroud)
但它没有做我所期望的.我希望它应该出现一个消息框"debug",并且textarea不会显示.
我该如何解决这个问题?
我想在特定网站上收集SSL证书的某些细节.我知道在Linux/MacOSX上使用openssl工具很简单.但是在JavaScript中是相同还是相似?
我知道浏览器处理套接字连接,并且SSL握手发生在任何一方发送数据之前.但是在XMLHTTPRequest中,我想知道是否有可能将这些细节作为某种响应代码等?
我有一个$(document).ready()用于构建界面的网页.然后用户可以转到子页面,并返回到原始页面,他可以按下浏览器的"上一个"按钮或页面中的"返回"按钮,触发一个history.back();.返回原始页面,$(document).ready()未触发,因此页面缺少信息.
有没有办法自动触发它,就好像它是一个"真正的负载"?
谢谢!
编辑
在其中发出警报,警报已加速,但我的界面中缺少东西,就好像缺少一些准备事件的部分一样.调查...
编辑2
hahahahaha in document.ready我click有些复选框应该是未经检查的.当我在这个页面上"退回"时,它们会被检查,因此我们会对它们进行检查click.
对不起,这完全是我的坏事:(
这是我的代码:
request_xml: function()
{
http_request = false;
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{
http_request.overrideMimeType('text/xml');
}
if (!http_request)
{
return false;
}
http_request.onreadystatechange = this.response_xml;
http_request.open('GET', realXmlUrl, true);
http_request.send(null);
xmlDoc = http_request.responseXML;
},
response_xml:function ()
{
if (http_request.readyState == 4)
{
if(http_request.status == 404 && countXmlUrl<=3)
{
countXmlUrl++;
realXmlUrl = xmlUrl[countXmlUrl];
this.request_xml();
}
if (http_request.status == 200)
{
xmlDoc = http_request.responseXML;
alert("need to update3");
this.peter_save_data();
}
}
},
peter_save_data:function()
{
// removed function code
},
Run Code Online (Sandbox Code Playgroud)
奇怪的是,警报没有问题,但是下面的函数调用给了我这个错误:
Error: this.peter_save_data is not …Run Code Online (Sandbox Code Playgroud) 所以...从我在谷歌上找到的,我找不到使用Javascript来设置我的打印首选项的方法(阅读:边距,方向,页脚等).
我即将告诉我的老板他不想做什么.我想检查一下,你会不会让人们做这件事.请告诉我.
我发现在FF中你可以使用一些user_pref(key,val)设置来设置用户的偏好,但这对我的90%以上的用户都不起作用.我正在寻找能够覆盖IE(尽可能多),FF和Chrome的东西.
感谢忍者的回复.
触发功能似乎是同步的.也就是说,所有绑定函数似乎是按顺序,同步执行(调用函数可以异步执行某些操作,但这不是问题).
这适用于自定义和非自定义(点击,悬停等)事件吗?是否有任何事件,javascript的单线程保证不成立?
如果为true,是否可以更改行为以异步方式执行它们而不将超时插入每个绑定函数?
这是一个演示问题的示例:
var ele = $('#blah');
// Example of the bound function doing something synchronously
ele.bind('customEvent.sync', function() {
// Do something synchronously
window.foo = 'foo';
});
// Example of the bound function doing something asynchronously
ele.bind('customEvent.async', function() {
window.setTimeout(function() {
// Do something asynchronously
window.bar = 'bar';
}, 0);
});
// Trigger both events
ele.trigger('customEvent');
// If trigger is guaranteed to be synchronous this should alert 'foo:undefined' or possibly 'foo:bar' depending on whether the asych function was called …Run Code Online (Sandbox Code Playgroud) 有谁知道如何在本机JS中实现jQuery的.on()方法?"addEventListener"方法不会将子/选择器元素作为过滤方式,我认为我没有适当的冒泡/捕获知识来完全理解那里发生的事情.我确实在event.js中查询了源代码,看起来最终addEventListener确实像通常那样使用了,但我不确定我是否非常了解源代码.
如果本机方法没有提供利用冒泡和捕获的机制,那么jQuery .on()函数是否真的有任何好处,或者只是让它看起来那样?我的印象是
.on('parent', '.child', fn(){});
Run Code Online (Sandbox Code Playgroud)
比单独将事件附加到所有孩子更有效,但是从我对源的解释来看,很难判断jQuery是以某种方式管理这个以导致性能改进的方式,或者仅仅是为了可读性.
有没有一种标准方法可以在父母身上实施事件,利用其子元素的冒泡/捕获阶段,而不是必须将事件附加到每个孩子身上?
我注意到Chrome和Firefox中"点击"和"更改"事件的顺序不同.
请参阅此JSFiddle例如:http://jsfiddle.net/5jz2g/3/
JavaScript的:
var el = $('foo');
var fn = function(e) {
console.log(e.type);
}
el.addEvent('change', fn);
el.addEvent('click', fn);
Run Code Online (Sandbox Code Playgroud)
在Chrome中,这会记录:
change
click
Run Code Online (Sandbox Code Playgroud)
在Firefox中,这会记录:
click
change
Run Code Online (Sandbox Code Playgroud)
事件顺序是否有标准?哪个先开火?MDN似乎没有提到这一点,我在W3C文档中找不到相关内容.
我在Microsoft Edge中的(ASP.NET)Web应用程序有奇怪的问题.
在某个时刻,onclick事件停止工作.页面上响应该onclick事件的所有按钮都停止工作.在同一页面上,我有一些响应onmousedown事件的按钮,它们继续工作.
如果我刷新页面,问题就消失了.控制台中没有错误.我没有其他浏览器(包括Windows 10下的IE11)的这个问题.
你们有没有遇到过类似的问题?
javascript onclick javascript-events mouseevent microsoft-edge
javascript ×10
jquery ×4
onclick ×2
checkbox ×1
concurrency ×1
mouseevent ×1
onchange ×1
openssl ×1
ssl ×1