iPad safari bookmarklet - 为什么需要2个点击?

时间:2012-12-09 01:13:46

标签: javascript ios bookmarklet mobile-webkit

我有一个像这样的书签:

javascript:(function()%7Bvar%20x=document.createElement('SCRIPT');x.type='text/javascript';x.src='http://tmxhost.com/mail/clippad.js?'+(new%20Date().getTime()/100000);document.getElementsByTagName('head')%5B0%5D.appendChild(x);%7D)();

但是当我点击它时,没有任何反应,直到我再次点击它,然后它写入DOM。谁知道为什么?

1 个答案:

答案 0 :(得分:1)

书签将此脚本附加到页面:http://tmxhost.com/mail/clippad.js

该脚本有两部分。 1.)将jQuery添加到页面。 2.)使用jQuery。

问题是在第二部分运行之前没有检查jQuery是否已加载,所以通常第二部分在第一次尝试时会失败。

第二次点击书签时,jQuery已完成加载,因此第二部分按预期运行。

在书签中使用jQuery有一些很好的工具和教程:https://www.google.com/search?q=jquery+bookmarklet

要考虑的另一点是,在书签中使用$(document).ready通常是没有意义的,因为在文档准备好之后几乎总是使用书签。