如果我为嵌入对象执行在线onload事件,这似乎有效,但我似乎无法通过addEventListener获取load事件.这是预期的吗?
我想要一个特定的动作,只要它的href属性与锚标记的click事件相关联:
mailto:和开头的#和结束所以我在尝试这段代码:
<a href="example.com">example.com</a>
<a href="mailto:someone@www.example.com">Someone</a>
<a href="thepage#">The Page</a>
<a>This does nothing</a>
<script type="text/javascript">
$(document).on('click', 'a:not([href^="mailto\\:"], [href$="\\#"], [href])', myFunction);
</script>
Run Code Online (Sandbox Code Playgroud)
它没有用.但令我沮丧的是,这有效:
$(document).on('click', 'a:not([href^="mailto\\:"], [href$="\\#"], a:not([href]))', myFunction);
Run Code Online (Sandbox Code Playgroud)
但我不明白怎么做.注意内在:not().据我所知,这[href]意味着没有href属性.还是相反?
有人能引导我走向光明吗?
在Web应用程序中,Html5中本地存储的安全性如何,或者是否有其他方法可以保护本地存储中的敏感数据.
项目结构:
前端:Html5,Angular js,Middletier: Asp.net webApi,BackEnd:Sql Server.
用户登录页面后,使用一些加密算法对该凭证进行加密.它将存储在db中.
之后,每个子动作如产品列表,订单详情,图书历史记录,添加产品需要验证.
在页面后刷新时,数据会丢失,因此需要保留数据,因此我选择了localstorage.存储使用某些js算法加密的用户名和密码,并放入本地存储器中.
我觉得它不安全,因为任何人都可以从浏览器工具中窃取数据.
在这种情况下是否有任何替代方法,否则这种方法是安全的.
任何人都可以帮助我处理.
javascript security javascript-events angularjs asp.net-web-api2
我有以下javascript代码...这里我在body标签中使用onKeyPress ="someFunction()"来获取按下的键的keyCode.
代码在IE8中工作正常,但这在Firefox中不起作用.
请给出一些解决方案.
<html>
<head>
<title>onKeyPress( ) event not working in firefox..</title>
<script>
function printDiv()
{
var divToPrint=document.getElementById('prnt');
newWin=window.open(''+self.location,'PrintWin','left=50,top=20,width=590,height=840,toolbar=1,resizable=1,scrollbars=yes');
newWin.document.write(divToPrint.outerHTML);
newWin.print();
//newWin.close();
}
</script>
<script>
function keypress()
{
alert(event.keyCode);
var key=event.keyCode;
if(key==112 || key==80)
printDiv();
else if(key==101 || key==69)
window.location="http://google.com";
else if(key==114 || key==82)
window.reset();
}
</script>
</head>
<body bgcolor="lightblue" onkeypress="keypress()">
Run Code Online (Sandbox Code Playgroud)
提前致谢.....
<!DOCTYPE html>
<html>
<head>
<title>Please help me out</title>
<script type="text/javascript">
function printDiv()
{
var divToPrint=document.getElementById('prnt');
newWin=window.open(''+self.location,'PrintWin','left=50,top=20,width=590,height=840,toolbar=1,resizable=1,scrollbars=yes');
newWin.document.write(divToPrint.outerHTML);
newWin.print();
}
</script>
<script type="text/javascript">
function …Run Code Online (Sandbox Code Playgroud) 在javascript中捕获"History.Back"事件是否可行?©想要捕获history.back()事件和注销用户.
Ps:有一些关于禁用history.back()的代码.但对我没用.
<script type = "text/javascript" >
function disableBackButton()
{
window.history.forward();
}
setTimeout("disableBackButton()", 0);
</script>
Run Code Online (Sandbox Code Playgroud)
然后设置onunload事件
<body onunload="disableBackButton()">
Run Code Online (Sandbox Code Playgroud) 我有一个<div>使用以下代码附加了click事件的元素:
var id = "someId";
var elem = document.getElementById("elemId");
elem.addEventListener("click", function() { someFunction(id); }, false);
Run Code Online (Sandbox Code Playgroud)
稍后我会复制元素并将其添加到其他部分DOM,但需要先删除该click事件
var elem = document.getElementById("elemId");
elem.removeEventListener("click", ???? , false);
Run Code Online (Sandbox Code Playgroud)
我不确定如何引用监听器,到目前为止我没有尝试过从元素中删除事件.
有任何想法吗?
干杯
斯图尔特
我有一个人对象,我基本上希望它能够发出自己的事件.但是,如果触发事件与原型具有相同的名称,则Chrome会打印出相当大的错误.在下面的代码示例中, person.murder触发murder将错误写入控制台的事件.(代码更有意义).
function Person() {
}
Person.prototype.murder = function() {
$(this).trigger("murder");
}
Run Code Online (Sandbox Code Playgroud)
我像这样调用触发器
var barry = new Person();
$(barry).on("murder", function(){
alert("I am so angry");
})
barry.murder();
Run Code Online (Sandbox Code Playgroud)
因此谋杀巴里导致错误,但是如果事件是这样的事情personDied,那么没有错误.我是否正确地触发了事件?我只是想毫无错误地杀人.
有时会返回错误的崩溃<error>,有时甚至
未捕获RangeError:超出最大调用堆栈大小
这基本上是一个后续问题:无法将事件传递给addEventListener:closure问题.
我已阅读几乎所有相关问题,但无法找到答案.
下面的函数在循环中执行,其中参数从数据数组中提取.使用此函数,我可以将不同/新参数传递给事件侦听器的每个实例.outer函数允许将参数的值封装在闭包中,以便实际值可用,而不仅仅是对持有者的引用.此外,passevent功能将事件传递给响应函数.最后,响应函数具有所有适当的信息以响应click事件.这非常有效.问题是,我无法弄清楚如何在以后删除事件监听器.我已经尝试了所有我能想到的东西.请帮忙.我该怎么做:removeEventListener?
(function outerfunction(i, f) {
elementname.addEventListener("click", function passeventfunction(e) {
responsefunction(e, f, i); });})(parameter1, parameter2);
Run Code Online (Sandbox Code Playgroud)
此外,如果有人可以帮助澄清这里发生的事情.这是封闭内的闭包吗?是否有留下内存泄漏的危险?谢谢!
在jQuery中,当您设置事件时,您可以命名它.这意味着(如果您愿意),例如,您可以拥有多个调整大小窗口事件,并且能够单独取消绑定它们,而不必取消绑定该选择器上的所有事件.
jQuery命名空间的示例:
$(window).on('scroll.myScrollNamespace, function() ...
我想知道如何在纯JavaScript中创建命名空间.这显然不起作用:
window.addEventListener('resize.myScrollNamespace', function() ...
我正在使用Zurb Foundation工具提示(http://foundation.zurb.com/docs/components/tooltips.html).我想略微定制他们的行为.他们mouseover在源元素上使用事件监听器来创建工具提示(在第一次调用时),然后将其淡入.我正在尝试做的是让jQuery在页面上选择工具提示源的子集,删除只是他们的鼠标悬停监听器,并绑定新的,将让工具提示在那里停留一秒钟,然后在鼠标移开后消失.
这是棘手的部分.Zurb如此绑定其听众:
$('body.off-canvas').on('mouseenter', '.has-tooltip', ...);
以下将成功删除此侦听器,如预期:
$('body.off-canvas').off('mouseenter', '.has-tooltip');
但我只想删除其中一些元素的监听器,如下所示:
$('body.off-canvas').off('mouseenter', '.has-tooltip.my-custom-class');
事实证明,jQuery不会认为这是更多.has-tooltip元素的"减法" ,而是基本上说,"没有事件监听器匹配这个精确的选择器,因此我什么都不做." 有没有人有一个好的解决方法?如果你自己创建原始的监听器,我发现了一些可行的,但这不是这种情况.
javascript ×9
jquery ×4
angularjs ×1
closures ×1
dom ×1
eventemitter ×1
events ×1
firefox ×1
html ×1
onkeypress ×1
security ×1