<a class="comment-mod" onclick="alert('ss')" href="#">评论</a>
如果用户直接查看文章列表,那么所有的评论以及评论框都是不显示的,但是如果用户通过别的页面比如首页的个人动态直接定位到这篇日志,那么评论就应该全部显示。而列表页和查看单个条目的页面是同一个页面,这就要求我判断一下用户是否定位到该篇日志,如果是,就通过JS来触发 A 标签的点击事件。
一开始我尝试了一些方法,想当然地以为 A 标签和按钮一样是有 onclick() 事件的,结果发现没有,后来从网上搜了一些资料之后,成功解决了这个问题^_^ 。解决办法是针对 IE 和 FF编写不同的逻辑,部分代码如下:
<script>
var comment = document.getElementsByTagName('a')[0];
if (document.all) {
// For IE
comment.click();
} else if (document.createEvent) {
//FOR DOM2
var ev = document.createEvent('HTMLEvents');
ev.initEvent('click', false, true);
comment.dispatchEvent(ev);
}
</script>
语法:
createEvent(eventType)
参数 |
描述 |
eventType |
想获取的 Event 对象的事件模块名。 关于有效的事件类型列表,请参阅"说明"部分。 |
返回值
返回新创建的 Event 对象,具有指定的类型。
抛出
如果实现支持需要的事件类型,该方法将抛出代码为 NOT_SUPPORTED_ERR 的 DOMException 异常。
说明
该方法将创建一种新的事件类型,该类型由参数 eventType 指定。注意,该参数的值不是要创建的事件接口的名称,而是定义那个接口的 DOM 模块的名称。
下表列出了 eventType 的合法值和每个值创建的事件接口:
参数 |
事件接口 |
初始化方法 |
HTMLEvents |
HTMLEvent |
iniEvent() |
MouseEvents |
MouseEvent |
iniMouseEvent() |
UIEvents |
UIEvent |
iniUIEvent() |
用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象。关于初始化方法的详细信息,请参阅 Event 对象参考。
该方法实际上不是由 Document 接口定义的,而是由 DocumentEvent 接口定义的。如果一个实现支持 Event 模块,那么 Document 对象就会实现DocumentEvent 接口并支持该方法。
相关推荐
JavaScript中的document.createEvent方法允许开发者手动创建一个事件对象,该方法属于DOM(文档对象模型)技术的一部分。通过该方法创建的事件对象,可以被事件监听器触发并执行相应的事件处理函数,以此来模拟用户...
JavaScript中的`document`对象是浏览器提供的一个全局对象,它代表了当前HTML页面的文档对象,提供了访问和操作页面内容的方法和属性。通过`document`,我们可以实现对HTML元素的查找、创建、修改以及与用户交互等...
可以在document对象上使用createEvent()方法创建event对象,此方法接收一个参数,即要创建的事件类型的字符串。在DOM2级中这些字符串都使用英文复数形式,而在DOM3级中都变成了单数。这个字符串可以是以下几个字符串...
`几种流行的AJAX框架的对比.pdf`文件可能涉及到了使用JavaScript进行异步数据交换的AJAX技术,`document`对象在AJAX中也有重要作用。通过`document.createElement('script')`创建并添加新的`<script>`标签,我们可以...
在原生 JavaScript 中,我们可以使用 `querySelectorAll` 方法来达到类似的效果。例如: ```javascript var $ = document.querySelectorAll.bind(document); ``` `querySelectorAll` 返回的是 NodeList 对象,...
Firefox 不支持 click 方法的解决 Firefox 不支持 click 方法是因为 W3C 标准规定 click 方法只能赋予 input 元素。这意味着在 Firefox 浏览器中,不能使用 click 方法来触发非 input 元素的点击事件。 解决方法是...
也可以使用 `document.createEvent('Event')`、`initEvent` 和 `dispatchEvent` 方法来创建和触发自定义事件。 五、事件委托 事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。...
本文详细介绍了如何使用JavaScript来触发模拟的鼠标点击事件,并提供了IE浏览器和其他现代浏览器(例如Chrome、Firefox)中实现的示例代码。 首先,要理解事件触发器的概念。事件触发器是一种机制,它使得开发者...
这段代码首先检查浏览器是否支持`createEvent`方法,如果支持,则使用DOM Level 2标准的方式来创建并初始化一个鼠标点击事件,然后在目标元素上触发这个事件。对于不支持`createEvent`的老版本IE,它会使用`fire...
var event = document.createEvent('MouseEvents'); event.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); aLink.dispatchEvent(event); } else { aLink....
这种方式需要确保事件能够在不同DOM树之间传播,因此可能需要使用`document.createEvent`和`event.target.dispatchEvent`等方法。 ```javascript // 子页面触发事件 var event = document.createEvent('CustomEvent...
在JavaScript中,各种事件的模拟方法大同小异。例如,模拟键盘事件、鼠标事件等,也是通过创建相应的事件对象并调用对应的方法来实现的。比如`document.createEvent('KeyboardEvent')`创建键盘事件,`dispatchEvent`...
我们将使用原生JavaScript代码,不依赖任何第三方库。 首先,我们会创建一个基本的HTML页面,其中包含一个按钮元素(button),一个提交按钮的模拟(a标签),以及一个表单(form)。在实际的应用中,可能需要根据...
本文将深入讲解如何在JavaScript中创建和使用自定义事件。 首先,我们可以通过`Event`构造函数来创建一个基本的自定义事件。例如: ```javascript var event = new Event('build'); ``` 这里创建了一个名为`build...
`onclick`事件中的`saveImage.document.execCommand('saveAs')`是一个旧方法,用于执行浏览器的内建命令,`'saveAs'`这个命令期望能触发“另存为”对话框,但现代浏览器可能不支持此方法,因为它已被废弃。...
由于JavaScript的`new KeyboardEvent()`构造函数在某些环境中可能不可用或者受到限制,我们通常会使用`document.createEvent()`和`event.initKeyEvent()`(对于旧版本浏览器)或`event.initKeyboardEvent()`(对于新...
在纯JavaScript中,可以通过`document.createEvent()`和`dispatchEvent()`来模拟事件,但是需要注意的是,这种方法在某些浏览器中可能存在兼容性问题,例如IE9以下版本的浏览器不支持`document.createEvent()`,因此...
这份速查表涵盖了JavaScript中常见的对象、属性、方法等核心概念,并通过示例帮助读者更好地理解和应用这些知识点。 #### JavaScript 常用对象与方法 **1. Object** - **toString()**: 返回一个表示该对象的字符...
本篇文章将深入探讨JavaScript事件触发机制,通过实例分析其原理、使用方法以及相关注意事项。 首先,JavaScript事件大致分为三类: 1. MouseEvents:包括`click`、`mousedown`和`mouseup`等,这些事件与鼠标操作...