从 URL/地址栏调用 Javascript 函数

是否可以从 URL 调用 javascript 函数?我基本上试图在一个我不能访问源代码的页面中利用 JS 方法。

比如: http://www.example.com/mypage.aspx?javascript:printHelloWorld()

我知道如果你把 javascript:alert("Hello World");放进地址栏,它就会工作。

我怀疑这个问题的答案是否定的,只是想知道是否有一种方法可以做到这一点。

369566 次浏览

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

然而,有一些 书签可以作为书签,从地址栏快速运行 JavaScript 函数; 不确定这是否满足您的需要,但它已经非常接近了。

/test.html # alert (‘ heello’)

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

你亦可在网上填写下列表格

<a href='javascript:alert("hello world!");'>Click me</a>

当你点击“ Click me”超链接时,javascript 会出现在 url-bar 中,Alert 对话框会显示出来

你可以像这样使用: 例如,您有一个页面: http://www.example.com/page.php 然后在 page.php 中插入以下代码:

if (!empty($_GET['doaction']) && $_GET['doaction'] == blabla ){
echo '<script>alert("hello");</script>';
}

然后,每当你访问这个网址: http://www.example.com/page.php?doaction=blabla

然后警报就会被自动调用。

写在地址栏

javascript:alert("hi");

一定要在开头写: javascript:

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

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

关于 window.location.hash属性:

返回 URL 的锚点部分。


例1: < br/>

//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"

例子2:

$(function(){
setTimeout(function(){
var id = document.location.hash;
$(id).click().blur();
}, 200);
})

例三:

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


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


case "#admin":


}

利用埃迪的回答非常有效,因为我也遇到了同样的问题。 只需调用带参数的 url: “ www.mypage.html # myAnchor”

然后,在 mypage.html 中:

$(document).ready(function(){
var hash = window.location.hash;
if(hash.length > 0){
// your action with the hash
}
});

您可以通过事件从 url 执行 javascript 例句: www.something.com/home/save?id=12<body onload="alert(1)"></body>

如果在 url 中的 params 在那里是工作的。

使用:

(function() {
var a = document.createElement("script");
a.type = "text/javascript";
a.src = "http://www.example.com/helloworld.js?" + Math.random();
document.getElementsByTagName("head")[0].appendChild(a)
})();

这基本上是在 HTML 的头部创建一个新的 JavaScript 行,以加载您希望在页面本身上加载的 JavaScriptURL。这看起来更像是你想要的。您还可以将 a.src更改为实际的代码,但是对于较长的函数和内容,这就成为一个问题。源链接还可以链接到计算机上的 JavaScript 文件(如果以这种方式为目标)。

你可以做一件事,那就是你可以先打开链接 Www.example.com。然后你可以搜索: Javascript: window.alert (“ Hello World!”)

不,因为这会让链接变得非常危险。

有一个叫做 书签小工具网址的 Chrome 扩展(没有附属)。要使用 JavaScript 附加 URL,以便在加载网页后立即执行 JavaScript 命令,可以使用 ?bmlet=javascript:

示例: 显示一个警告框

https://github.com/?bmlet=javascript:alert("Hi");

示例: 在编辑 GitHub README 文件时启用拼写检查
[显然,拼写检查扩展插件必须最初是可用的。]

https://github.com/<username>/<repositoryname>/edit/main/README.md?bmlet=javascript:document.getElementById("code-editor").setAttribute("spellcheck","true");

在某些页面上,可能需要一些时间,因为 JavaScript 命令在完全加载页面之后才会运行。像 alert("Hi");这样的简单命令应该运行得很快。

我是一名学生,我刚刚意识到我的学校从地址栏中屏蔽了 JavaScript。它与“ a”标记一起工作。Html 文件,但不在酒吧了。我不是在寻求帮助,我只是想分享这个。