我有一个 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/