从URL /地址栏调用Javascript函数

时间:2010-11-12 10:51:28

标签: javascript url

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

类似于:http://www.example.com/mypage.aspx?javascript:printHelloWorld()

我知道如果您将javascript:alert("Hello World");放入地址栏,它会起作用。

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

10 个答案:

答案 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的锚点部分。

<小时/> 示例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"

例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 中的参数存在就可以工作。