在 JavaScript 小书签中定义多个全局函数

Defining multiple global functions in a JavaScript bookmarklet

我正在开发一个小书签,它需要几个功能。单独地,我可以通过调用类似的东西来定义我需要的任何函数:

javascript:void(window.test1=function(){alert('hi');});

但是当我尝试添加第二个功能时,它就停止工作了。

javascript:void(window.test1=function(){alert('hi');}window.test2=function(){alert('bye');});

运行 这会在控制台中生成错误 "Unexpected identifier"。我尝试用分号、space 和回车符 return(后两个十六进制编码为 %20 和 %0A)分隔两个函数声明,将它们插入:

javascript:void(window.test1=function(){alert('hi');};window.test2=function(){alert('bye');});

这也不行;它会产生错误消息 "Unexpected token".

如何在书签上下文中连续定义两个函数?

尝试将所有内部函数包装在 1 个函数中,并将内部函数中所有需要的函数定义为 window 对象上的 properties/methods,就像您在此处所做的那样。

因此:

javascript:void(function(){window.test1=function(){alert('hi');};window.test2=function(){alert('bye');}}());