gpt4 book ai didi

javascript - jQuery .click() 适用于除 Safari 以外的所有浏览器

转载 作者:IT王子 更新时间:2023-10-29 03:15:51 25 4
gpt4 key购买 nike

我有一段 JavaScript,它在现有的 div 中动态创建一个 A 标记,然后调用 jQuery 函数“单击”它。这适用于除 Safari 以外的所有浏览器。

Safari 返回以下错误:

'undefined' is not a function (evaluating '$('.shell a')[0].click()')

关于我做错了什么或为什么这在 Safari 中不起作用以及如何让它工作的任何想法(或在所有浏览器中工作的一段代码)我试过使用 .trigger ("click") 也给出同样的错误。

JavaScript

function writeAndClickLink(url) {

$('.shell').html('<a href="' + url + '"></a>');
$('.shell a')[0].click();
}

在 HTML 中:

<div class="shell"></div>

我之所以采用这种奇怪的方式,是因为该函数是从 Flash 站点调用的,用于打开一个 Twitter 窗口,我会在该窗口中对发推文给予奖励。到目前为止,这是我可以将“tweet”事件绑定(bind)到窗口的唯一方法。如果我以任何其他方式打开窗口(例如 window.open),它不会捕获让我知道他们实际上完成了推文的绑定(bind)事件。

流程是这样的:

  • 用户点击 flash 中的 tweet 按钮
  • Flash调用javascript函数动态写入href并“点击”它
  • Twitter 窗口打开
  • 用户成功发推
  • Tweet 事件被捕获并成功更新 flash
  • 内容在 flash 中解锁

最佳答案

var a = $('.shell a')[0];
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window);
a.dispatchEvent(evObj);

参见 http://www.howtocreate.co.uk/tutorials/javascript/domevents (搜索“手动触发事件”)。

关于javascript - jQuery .click() 适用于除 Safari 以外的所有浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com