标签: javascript-events

Javascript - 加载嵌入元素的事件

如果我为嵌入对象执行在线onload事件,这似乎有效,但我似乎无法通过addEventListener获取load事件.这是预期的吗?

javascript javascript-events

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

a:不是(a:不是([href]))选择器

我想要一个特定的动作,只要它的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属性.还是相反?

有人能引导我走向光明吗?

jquery javascript-events

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

在Local Stoarge或会话存储中存储敏感数据是否安全?Localstorage允许对敏感数据进行任何攻击

在Web应用程序中,Html5中本地存储的安全性如何,或者是否有其他方法可以保护本地存储中的敏感数据.

项目结构:

前端:Html5,Angular js,Middletier: Asp.net webApi,BackEnd:Sql Server.

用户登录页面后,使用一些加密算法对该凭证进行加密.它将存储在db中.

之后,每个子动作如产品列表,订单详情,图书历史记录,添加产品需要验证.

在页面后刷新时,数据会丢失,因此需要保留数据,因此我选择了localstorage.存储使用某些js算法加密的用户名和密码,并放入本地存储器中.

我觉得它不安全,因为任何人都可以从浏览器工具中窃取数据.

在这种情况下是否有任何替代方法,否则这种方法是安全的.

任何人都可以帮助我处理.

javascript security javascript-events angularjs asp.net-web-api2

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

onKeyPress事件在Firefox中不起作用

我有以下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)

提前致谢.....


这是在IE8中工作正常但在Firefox中无法正常工作的总代码.

<!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 firefox javascript-events onkeypress

9
推荐指数
3
解决办法
5万
查看次数

如何在javascript中捕获"History.Back"事件?

在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)

javascript javascript-events

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

如何从Javascript中的元素中删除click事件?

我有一个<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)

我不确定如何引用监听器,到目前为止我没有尝试过从元素中删除事件.

有任何想法吗?

干杯

斯图尔特

javascript javascript-events

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

JQuery触发自定义事件会导致错误

我有一个人对象,我基本上希望它能够发出自己的事件.但是,如果触发事件与原型具有相同的名称,则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:超出最大调用堆栈大小

javascript jquery javascript-events eventemitter

9
推荐指数
1
解决办法
1172
查看次数

如何删除使用闭包添加的EventListener?

这基本上是一个后续问题:无法将事件传递给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)

此外,如果有人可以帮助澄清这里发生的事情.这是封闭内的闭包吗?是否有留下内存泄漏的危险?谢谢!

javascript closures javascript-events addeventlistener

9
推荐指数
1
解决办法
1795
查看次数

命名空间vanilla JavaScript事件,如jQuery

在jQuery中,当您设置事件时,您可以命名它.这意味着(如果您愿意),例如,您可以拥有多个调整大小窗口事件,并且能够单独取消绑定它们,而不必取消绑定该选择器上的所有事件.

jQuery命名空间的示例:

$(window).on('scroll.myScrollNamespace, function() ...

我想知道如何在纯JavaScript中创建命名空间.这显然不起作用:

window.addEventListener('resize.myScrollNamespace', function() ...

javascript jquery events javascript-events

9
推荐指数
1
解决办法
1933
查看次数

从元素子集中解除绑定jQuery侦听器

我正在使用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元素的"减法" ,而是基本上说,"没有事件监听器匹配这个精确的选择器,因此我什么都不做." 有没有人有一个好的解决方法?如果你自己创建原始的监听器,我发现了一些可行的,但这不是这种情况.

html javascript jquery dom javascript-events

9
推荐指数
1
解决办法
144
查看次数