是否可以从URL调用javascript函数?我基本上试图在我无法访问源的页面中利用JS方法。
类似于:http://www.example.com/mypage.aspx?javascript:printHelloWorld()
我知道如果您将javascript:alert("Hello World");
放入地址栏,它会起作用。
我怀疑这个问题的答案是否定的,只是想知道是否有办法做到这一点。
答案 0 :(得分:54)
没有超链接,没有。除非页面内部专门为此设置了脚本并且它正在检查某些参数....但是对于您的问题,不,在浏览器中没有内置支持。
但是bookmarklets您可以添加书签以快速运行地址栏中的JavaScript功能;不确定这是否符合您的需求,但它与它的接近程度非常接近。
答案 1 :(得分:20)
写入地址栏
javascript:alert("hi");
确保你在开头写:javascript:
答案 2 :(得分:11)
您可以使用数据URI。
例如:
data:text/html,<script>alert('hi');</script>
有关详细信息,请访问:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
答案 3 :(得分:6)
/test.html#alert( 'heello')
test.html
<button onClick="eval(document.location.hash.substring(1))">do it</button>
答案 4 :(得分:4)
您也可以放置以下内容
<a href='javascript:alert("hello world!");'>Click me</a>
到您的html代码,当您点击“Click me”超链接时,javascript将显示在url-bar中,并且“警告”对话框将显示
答案 5 :(得分:2)
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
然后会自动调用警报。
答案 6 :(得分:2)
关于window.location.hash
媒体资源:
返回URL的锚点部分。
//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);
})
示例3:
var hash = "#search" || window.location.hash;
window.location.hash = hash;
switch(hash){
case "#search":
selectPanel("pnlSearch");
break;
case "#advsearch":
case "#admin":
}
答案 7 :(得分:1)
使用Eddy的答案非常有效,因为我遇到了同样的问题。 只需使用以下参数调用您的网址:&#34; www.mypage.html#myAnchor&#34;
然后,在mypage.html中:
$(document).ready(function(){
var hash = window.location.hash;
if(hash.length > 0){
// your action with the hash
}
});
答案 8 :(得分:1)
只需使用:
(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 行,以在页面本身加载您希望的 JavaScript URL。这似乎更像你所要求的。您也可以将 a.src
更改为实际代码,但对于更长的函数和内容,它会成为一个问题。如果以这种方式定位,源链接还可以链接到您计算机上的 JavaScript 文件。
答案 9 :(得分:0)
您可以通过事件从 url 执行 javascript
例如:www.something.com/home/save?id=12<body onload="alert(1)"></body>
如果 url 中的参数存在就可以工作。