Вызов функции Javascript из URL / адресной строки - PullRequest
96 голосов
/ 12 ноября 2010

Можно ли вызвать функцию JavaScript из URL? Я в основном пытаюсь использовать методы JS на странице, к которой у меня нет доступа.

Что-то вроде: http://www.example.com/mypage.aspx?javascript:printHelloWorld()

Я знаю, если вы введете javascript:alert("Hello World"); в адресную строку, она будет работать.

Я подозреваю, что ответ на этот вопрос - нет, но просто удивился, есть ли способ сделать это.

Ответы [ 8 ]

54 голосов
/ 12 ноября 2010

Нет по гиперссылке, нет.Нет, если на странице нет сценария специально для этого и он проверяет какой-то параметр .... но для вашего вопроса, нет, в браузерах нет встроенной поддержки для этого.

Однако есть bookmarklets вы можете делать закладки для быстрого запуска функций JavaScript из вашей адресной строки;не уверен, что это соответствует вашим потребностям, но это настолько близко, насколько это возможно.

20 голосов
/ 30 ноября 2014

Запись в адресную строку

javascript:alert("hi");

Убедитесь, что вы пишете в начале: javascript:

11 голосов
/ 07 сентября 2016

Вы можете использовать данные URI. Например: data:text/html,<script>alert('hi');</script>

Для получения дополнительной информации посетите: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs

6 голосов
/ 12 ноября 2010

/ test.html # предупреждение ( 'heello')

test.html
<button onClick="eval(document.location.hash.substring(1))">do it</button>
5 голосов
/ 12 ноября 2010

Вы также можете разместить следующее

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

к вашему html-коду, и когда вы нажмете на гиперссылку «Нажми меня», в строке URL появится javascript, а в диалоговом окне «Предупреждение» появится

2 голосов
/ 14 марта 2017

Об объекте 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":  

}
2 голосов
/ 26 марта 2013

вы можете использовать эту ситуацию следующим образом: например, у вас есть страница: http://www.example.com/page.php, затем в этом page.php вставьте этот код:

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

тогда, когда вы посещаете этот URL: http://www.example.com/page.php?doaction=blabla

, тогда оповещение будет вызвано автоматически.

1 голос
/ 29 декабря 2017

Использование ответа Эдди сработало очень хорошо, так как у меня была такая же проблема. Просто вызовите ваш URL с параметрами: "www.mypage.html # myAnchor"

Затем в mypage.html:

$(document).ready(function(){
  var hash = window.location.hash;
  if(hash.length > 0){
    // your action with the hash
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...