javascript - 运行时如何从JavaScript书签本身获取来源?

标签 javascript bookmarklet

我有一个 JavaScript 书签。例如:

javascript:alert('hi');

我希望能够从书签本身获取当前正在运行的 JavaScript 书签的源代码,因此使用伪代码:

javascript:alert(currentlyExecutingScript.text);

哪个会提醒

javascript:alert(currentlyExecutingScript.text);

我该怎么做?我更喜欢跨浏览器解决方案,但我完全可以使用 Chrome 特定的解决方案!

我为什么对此感兴趣?因为我正在编写一个引用自身的小书签。

最佳答案

由于 location 指的是当前页面的 URL,并且 JavaScript 书签不会更改 location,因此这在任何当前浏览器中都是不可能的。

但是,可以在 JavaScript 中执行您想要的操作:

javascript:void function f(){alert(f.toString())}()

这将提醒以下内容:

function f(){alert(f.toString())}

在函数上调用 toString() 方法时,会返回表示函数源代码的字符串(请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString )。

信用

@SergeSeredenko建议使用void

When using an immediately-invoked function expression, void can be used to force the function keyword to be treated as an expression instead of a declaration.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void#Immediately_Invoked_Function_Expressions

关于javascript - 运行时如何从JavaScript书签本身获取来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918034/

相关文章:

Javascript 书签从一个页面获取信息并将其提交到另一页上的表单

javascript - 如何制作将选定文本变成链接的小书签?

javascript - 需要在 Internet Explorer 7 上运行此 Javascript 代码的帮助

javascript - 如何通过 JSON 代码运行循环以仅查找 javascript 中的特定字符串?

javascript - 是否可以在 TypeScript 中使用类型化流?

javascript - 如何使用css格式的Iconsax图标

javascript - 在 Twitter 应用程序书签中打开

javascript - 使用 window.location.hash 触发事件

javascript - 复选框和 Node JS

javascript - 我可以检测浏览器的书签工具栏是否启用了 JavaScript 吗?