从URL /地址栏调用Javascript函数

Daz*_*Cat 102 javascript url

是否可以从URL调用javascript函数?我基本上试图在我无法访问源的页面中利用JS方法.

就像是: http://www.example.com/mypage.aspx?javascript:printHelloWorld()

我知道如果你把javascript:alert("Hello World");它放到地址栏就行了.

我怀疑答案是否定的,只是想知道是否有办法做到这一点.

Nic*_*ver 56

没有超链接,没有.除非页面内部专门为此设置了脚本并且它正在检查某些参数....但是对于你的问题,不,在浏览器中没有内置的支持.

然而,有书签可以书签,以便从地址栏快速运行JavaScript功能; 不确定这是否符合您的需求,但它尽可能接近.

  • 我基本上试图在一个我无法访问源的页面中调用JS方法. (4认同)

hfa*_*azm 22

写在地址栏中

javascript:alert("hi");
Run Code Online (Sandbox Code Playgroud)

确保你在开头写:javascript:

  • @stomy 不幸的是,你需要手动输入 `javascript:` (5认同)
  • 它不适用于 **Google Chrome** 版本 80.0.3987.132(官方版本)(64 位)。Chrome 会自动从地址栏中删除“javascript:”前缀。 (2认同)

小智 16

您可以使用数据URI.例如: data:text/html,<script>alert('hi');</script>

欲了解更多信息,请访问:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs

  • 您不能将此附加到网址。 (4认同)
  • 我一直认为数据 url 仅用于图像,谢谢这真的很棒:) (2认同)

Edd*_*ddy 7

关于window.location.hash属性:

返回 URL 的锚点部分。


示例1:

//Assume that the current URL is 

var URL = "http://www.example.com/test.htm#part2";

var x = window.location.hash;

//The result of x will be:

x = "#part2"
Run Code Online (Sandbox Code Playgroud)

示例2:

$(function(){   
    setTimeout(function(){
        var id = document.location.hash;
        $(id).click().blur();
    }, 200);
})
Run Code Online (Sandbox Code Playgroud)

示例3:

var hash = "#search" || window.location.hash;
window.location.hash = hash; 

switch(hash){   
case "#search":  
    selectPanel("pnlSearch");
    break;    
case "#advsearch":    

case "#admin":  

}
Run Code Online (Sandbox Code Playgroud)


小智 6

/test.html#alert('heello")

test.html
<button onClick="eval(document.location.hash.substring(1))">do it</button>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,此评估用户输入是非常危险的做法,通常不应该被允许. (12认同)
  • 是的,这太疯狂了.有些工作场所会因为这种疯狂而被解雇. (6认同)
  • 这导致了@domenukk指出的反映跨站点脚本(XSS)问题. (6认同)

hex*_*mal 5

您还可以放置以下内容

<a href='javascript:alert("hello world!");'>Click me</a>
Run Code Online (Sandbox Code Playgroud)

到您的html代码,并且当您单击“单击我”超链接时,javascript将出现在网址栏中,并且“警告”对话框将显示

  • * javascript将显示在哪个浏览器的url-bar *中?我从未见过。(我知道javascript:链接有效,我只是在谈论网址栏) (5认同)