Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从URL/地址栏调用Javascript函数_Javascript_Url - Fatal编程技术网

从URL/地址栏调用Javascript函数

从URL/地址栏调用Javascript函数,javascript,url,Javascript,Url,可以从URL调用javascript函数吗?我基本上是在一个我无法访问源代码的页面中利用JS方法 类似于:http://www.example.com/mypage.aspx?javascript:printHelloWorld() 我知道如果你把javascript:alert(“helloworld”)进入地址栏,它将工作 我怀疑答案是否定的,只是想知道是否有办法做到这一点。没有超链接,没有。除非页面中有专门用于此的脚本,并且它正在检查一些参数……但是对于你的问题,没有,浏览器中没有内置的支

可以从URL调用javascript函数吗?我基本上是在一个我无法访问源代码的页面中利用JS方法

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

我知道如果你把
javascript:alert(“helloworld”)进入地址栏,它将工作


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

没有超链接,没有。除非页面中有专门用于此的脚本,并且它正在检查一些参数……但是对于你的问题,没有,浏览器中没有内置的支持

不过,您可以使用书签从地址栏快速运行JavaScript函数;不确定这是否满足您的需要,但它已经尽可能接近了。

/test.html#alert('heello'))

test.html
做吧

您还可以放置以下内容

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


当您单击“单击我”超链接时,javascript将出现在url栏中,警报对话框将显示您可以像这样使用的

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

if (!empty($_GET['doaction']) && $_GET['doaction'] == blabla ){
echo '<script>alert("hello");</script>';
}
if(!empty($\u GET['doaction'])&&&$\u GET['doaction']==blablabla){
回音“警报(“你好”);
}
然后,每当您访问此url时:
http://www.example.com/page.php?doaction=blabla

然后将自动调用警报。

写入地址栏

javascript:alert("hi");
确保在开头写:javascript:

您可以使用数据URI。 例如:
数据:text/html,警报('hi')

有关更多信息,请访问:

有关属性:

返回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"
Exmaple 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":  

}
示例3:

$(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

如果url中有参数,则该功能正常。

只需使用:

(函数(){
var a=document.createElement(“脚本”);
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文件(如果以这种方式定位)。

您的URL必须显示什么行为-您想在该站点的上下文中执行JavaScript吗?URI开头的
http:
告诉浏览器“我想让您发出http请求”,所以http请求确实如此。我想这是没有办法的。如果我粘贴
javascript:alert(“Hi”)
进入我的Firefox(28.0)地址栏,然后按Enter键,什么都不会发生。也许这已经被禁用了。。。是的,显然它被禁用了,因为白痴可以被说服将任何东西粘贴到他们的地址栏中。在此处找到信息:复制粘贴不起作用,但如果您键入它,它会起作用,看起来它没有被禁用,但在粘贴时会被解析。注意:它只在1时在Firefox中起作用。你在一个实际的(不是空的)页面和2。您明确地将“javascript:”放在它之前。javascript将出现在哪个浏览器的url栏中?我从来没见过。(我知道javascript:链接有效,我只是说URL栏)我也不知道。我知道你可以在地址中键入JS。这就是我要找的,这叫什么?我基本上是试图在一个我无法访问源代码的页面中利用JS方法。请注意,这种评估用户输入的做法非常危险,通常是不允许的。是的,这太疯狂了。有些工作场所会因为这种疯狂行为而被解雇。这导致了@domenukk指出的反映性跨站点脚本(XSS)问题。我一直认为数据url只用于图像,谢谢,这真是太神奇了:)你不能把它附加到url上。一些浏览器可能会用一条消息阻止它:
导航到顶级数据:URI不允许(阻止加载:“数据:text/html,alert('hi');”
它在Google Chrome 80.0.3987.132版(官方版本)(64位)上工作。它在
Chrome 80.0.3987.162中工作(官方版本)(64位)
在Firefox 72.0.2(64位)
中,它在Google Chrome 80.0.3987.132(官方版本)(64位)上不工作.Chrome会自动从地址栏中删除
javascript:
前缀。@stomy您需要手动键入
javascript:
,不幸的是,您似乎使用了一个容易受到XSS攻击的不安全站点进行了测试。