书签 继续进入新页面

发布于 2024-08-24 07:37:03 字数 695 浏览 6 评论 0原文

我制作了这个小书签:

javascript:(function(){var s=document.createElement('script');s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');document.getElementsByTagName('body')[0].appendChild(s);$('#hldIntMain').hide();$('#fadeBackground').hide();return false;})()

格式化代码:

// Add in jQuery
var s=document.createElement('script');
s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
document.getElementsByTagName('body')[0].appendChild(s); 
// Make page viewable
$('#idIntMain').hide();
$('#idBackground').hide();
return false;

但是每当我运行它时,它都会在完成工作后加载一个空白页面。我做错了什么?

I made this bookmarklet:

javascript:(function(){var s=document.createElement('script');s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');document.getElementsByTagName('body')[0].appendChild(s);$('#hldIntMain').hide();$('#fadeBackground').hide();return false;})()

Formatted code:

// Add in jQuery
var s=document.createElement('script');
s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
document.getElementsByTagName('body')[0].appendChild(s); 
// Make page viewable
$('#idIntMain').hide();
$('#idBackground').hide();
return false;

But whenever I run it, it loads a blank page after doing its work. What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

A君 2024-08-31 07:37:03

对于空白页问题,您不应返回 false,并且由于您使用的是自动调用匿名函数,因此您只需删除 return代码>声明。

默认情况下,当函数主体上没有 return 语句时,函数将返回 undefined 值,这将阻止导航到空白页面。

例如:

javascript:(function () { return false; })();

将显示一个空白页面,其中包含返回值的字符串表示形式,在本例中为“false”。

javascript:(function () {})();

浏览器将无法导航。

之后我有几点评论:

文件将异步加载,你不能 100% 确定 jQuery 将在更改元素的 src 属性后立即加载,你可以使用script 元素的 load 事件(对于 IE 为 readystatechange)。

我还建议您将 script 元素附加到 head 中。

For the blank page issue, you shouldn't return false, and since you are using an auto-invoking anonymous function, you can simply remove the return statement.

Functions by default, when there is no return statement is on the function body, they return the undefined value, and that will prevent navigating to the blank page.

E.g.:

javascript:(function () { return false; })();

Will show a blank page containing the string representation of the returned value, "false" in this case.

javascript:(function () {})();

The browser will not navigate.

After that I have a couple of comments:

The file will be loaded asynchronously, you can't be 100% sure that jQuery will be loaded right after changing the src attribute of the element, you can use the load event of the script element (readystatechange for IE).

I would also recommend you to append the script element to the head.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文