如何防止书签加载其结果?

Eri*_*ics 2 javascript bookmarklet

我有一个简单的书签,用于在提示()中显示元元素的值。它可以工作,但运行窗口后,要么只加载字符串“null”,要么加载提示值。

如何防止小书签导致页面加载?

我只想让脚本弹出提示,但不执行任何其他操作。

我的书市是这样的:

javascript:var%20description;var%20metas=document.getElementsByTagName('meta');for(var%20x=0,y=metas.length;x<y;x++){if(metas[x].name.toLowerCase()=="description"){description=metas[x];}}prompt("Meta%20Description",description.content);
Run Code Online (Sandbox Code Playgroud)

..展开后看起来像这样:

var description;
var metas=document.getElementsByTagName('meta');
for(var x=0,y=metas.length;x<y;x++){
    if(metas[x].name.toLowerCase()=="description"){
        description=metas[x];
    }
}
prompt("Meta Description",description.content);
Run Code Online (Sandbox Code Playgroud)

DG.*_*DG. 6

如今公认的方法是将代码包装在“立即调用的函数表达式”中,如下所示

(function(){ /*your code */})();
Run Code Online (Sandbox Code Playgroud)

这比void(0);在末尾添加要好,因为将代码包装在函数中可以防止书签中以及父 HTML 文档范围内的命名变量和函数之间发生冲突。

换句话说,如果您像现在在使用 JavaScript 代码和已有变量“描述”的网页上一样运行小书签,则可能会产生问题。