标签: dom-events

检测使用JavaScript点击进入Iframe

我知道iframe如果它是跨域的话,就不可能告诉用户在内部做了什么.我想要做的是跟踪用户是否完全点击了iframe.我想象这样一个场景,还有一个看不见div的顶部iframe和的div意愿,就在这时,通过点击事件的iframe.

这样的事情可能吗?如果是,那我该怎么办呢?的iframes是广告,所以我必须在所使用的标签没有控制权.

javascript iframe ads click-tracking dom-events

119
推荐指数
8
解决办法
15万
查看次数

Internet Explorer 9,10和11事件构造函数不起作用

我正在创建一个事件,所以使用DOM Event构造函数:

new Event('change');
Run Code Online (Sandbox Code Playgroud)

这在现代浏览器中工作正常,但在Internet Explorer 9,10和11中,它失败了:

Object doesn't support this action
Run Code Online (Sandbox Code Playgroud)

如何修复Internet Explorer(理想情况下通过polyfill)?如果我不能,是否有可以使用的解决方法?

custom-events dom-events internet-explorer-9 internet-explorer-10 internet-explorer-11

119
推荐指数
2
解决办法
5万
查看次数

如何捕获form.submit的响应

我有以下代码:

<script type="text/javascript">
        function SubmitForm()
        {

            form1.submit();
        }

        function ShowResponse()
        {

        }
</script>
.
.
.
<div>
    <a href="#" onclick="SubmitForm();">Click</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我想捕获html响应form1.submit?我该怎么做呢?我可以在form1.submit方法中注册任何回调函数吗?

javascript forms form-submit dom-events

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

所有浏览器的Object.watch()?

请务必阅读以下所有评论.不推荐使用Object.Watch和Object.Observe.请参阅Elliot B对更新(截至2018年6月)方法的评论.


我一直在寻找一种简单的方法来监控对象或变量的变化,我发现Object.Watch,Mozilla浏览器支持这种方式,但IE不支持.所以我开始四处寻找,看是否有人写过某种等价物.

关于我发现的唯一一件事是jQuery插件,但我不确定这是不是最好的方法.我当然在大多数项目中都使用jQuery,所以我并不担心jQuery方面......

无论如何,问题是:有人能告诉我一个jQuery插件的工作示例吗?我有问题让它工作......

或者,是否有人知道任何可以跨浏览器工作的更好的替代品?

答案后更新:

谢谢大家的回复!我试过这里发布的代码:http: //webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html

但我似乎无法使其与IE一起工作.下面的代码在Firefox中运行良好,但在IE中没有任何作用.在Firefox中,每次Object.Observe更改Object.watch()watcher.status都会调用in ,您可以在页面上看到输出.在IE中,这不会发生,但我可以看到document.write()更新值,因为最后一次watcher.watch()调用显示正确的值(在IE和FF中).但是,如果没有调用回调函数,那那就毫无意义...... :)

我错过了什么吗?

var options = {'status': 'no status'},
watcher = createWatcher(options);

watcher.watch("status", function(prop, oldValue, newValue) {
  document.write("old: " + oldValue + ", new: " + newValue + "<br>");
  return newValue;
});

watcher.status = 'asdf';
watcher.status = '1234';

document.write(watcher.status + "<br>");
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom-events

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

如何找出触发的JavaScript事件?

我有一个选择列表:

<select id="filter">
  <option value="Open" selected="selected">Open</option>
  <option value="Closed">Closed</option>
</select>
Run Code Online (Sandbox Code Playgroud)

当我选择Closed页面重新加载时.在这种情况下,它显示已关闭的票证(而不是打开).我手动操作时工作正常.

问题是当我ClosedWatir选择时页面不会重新加载:

browser.select_list(:id => "filter").select "Closed"
Run Code Online (Sandbox Code Playgroud)

这通常意味着不会触发某些JavaScript事件.我可以用Watir发射事件:

browser.select_list(:id => "filter").fire_event "onclick"
Run Code Online (Sandbox Code Playgroud)

但我需要知道要开火的事件.

有没有办法找出为元素定义了哪些事件?

javascript events browser-automation watir dom-events

115
推荐指数
3
解决办法
12万
查看次数

是否可以在不破坏后代事件监听器的情况下附加到innerHTML?

在下面的示例代码中,我将onclick事件处理程序附加到包含文本"foo"的span.处理程序是一个匿名函数,弹出alert().

但是,如果我分配给父节点alert(),则此innerHTML事件处理程序将被销毁 - 单击"foo"将无法弹出警告框.

这可以解决吗?

<html>
 <head>
 <script type="text/javascript">

  function start () {
    myspan = document.getElementById("myspan");
    myspan.onclick = function() { alert ("hi"); };

    mydiv = document.getElementById("mydiv");
    mydiv.innerHTML += "bar";
  }

 </script>
 </head>

 <body onload="start()">
   <div id="mydiv" style="border: solid red 2px">
     <span id="myspan">foo</span>
   </div>
 </body>

</html>
Run Code Online (Sandbox Code Playgroud)

html javascript innerhtml dom-events

100
推荐指数
2
解决办法
26万
查看次数

连续每5秒调用一次javascript函数

可能重复:
每60秒调用一次函数

每隔5秒连续调用一次javascript函数.我见过setTimeOut事件.如果我想连续不断,它会正常工作吗?

javascript dom-events

91
推荐指数
5
解决办法
21万
查看次数

使用addEventListener获取附加到节点的事件侦听器

我已经看过这些问题:

但是,他们都没有回答如何使用连接到节点的事件侦听器列表addEventListener,而无需addEventListener在创建事件侦听器之前修改原型.

VisualEvent不会显示所有事件侦听器(特定于iPhone的事件),我想以编程方式(稍微)执行此操作.

javascript dom-events

91
推荐指数
3
解决办法
11万
查看次数

JavaScript中的匿名函数的removeEventListener

我有一个包含方法的对象.这些方法被放入匿名函数内的对象中.它看起来像这样:

var t = {};
window.document.addEventListener("keydown", function(e) {
    t.scroll = function(x, y) {
        window.scrollBy(x, y);
    };
    t.scrollTo = function(x, y) {
        window.scrollTo(x, y);
    };
});  
Run Code Online (Sandbox Code Playgroud)

(还有更多代码,但这足以显示问题)

现在我想在某些情况下停止事件监听器.因此我试图做一个removeEventListener,但我无法弄清楚如何做到这一点.我在其他问题中已经读过,无法在匿名函数上调用removeEventListener,但在这种情况下是否也是如此?

我在匿名函数中创建了一个方法,因此我认为这是可能的.看起来像这样:

t.disable = function() {
    window.document.removeEventListener("keydown", this, false);
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做?

还有其他(好的)方法吗?

奖金信息; 这只需要在Safari中工作,因此缺少即支持.

javascript safari anonymous-function dom-events

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

如何在浏览器中规范化CSS3 Transition功能?

Webkit的转换结束事件称为webkitTransitionEnd,Firefox是transitionEnd,opera是oTransitionEnd.在纯JS中处理所有这些问题的好方法是什么?我应该做浏览器嗅探吗?或分别实施每一个?还有其他一些方法没有发生在我身上?

即:

//doing browser sniffing
var transitionend = (isSafari) ? "webkitTransitionEnd" : (isFirefox) ? "transitionEnd" : (isOpera) ? "oTransitionEnd";

element.addEventListener(transitionend, function(){
  //do whatever
},false);
Run Code Online (Sandbox Code Playgroud)

要么

// Assigning an event listener per browser
element.addEventListener("webkitTransitionEnd", fn);
element.addEventListener("oTransitionEnd", fn);
element.addEventListener("transitionEnd", fn);

function fn() {
   //do whatever
}
Run Code Online (Sandbox Code Playgroud)

javascript css dom-events css-transitions

89
推荐指数
5
解决办法
4万
查看次数