通过href运行Javascript

时间:2016-12-02 06:42:24

标签: javascript html

<ul>
    <a href="#Project">
        <li onclick="project()">Projects</li>
    </a>
</ul>

出现一个标签,你可以点击它,它运行一个javascript函数,并将网址更改为www.demo.com #Project。

当我向某人提供www.demo.com#Project这样的链接时,它是否有可能加载页面并自动运行function project()

编辑 解决方案

if(window.location.hash == "#Project") {
        setTimeout('project();', 1);
} 
else {
}

必须设置超时,因此首先加载页面然后执行函数

5 个答案:

答案 0 :(得分:5)

不,如果您向某人提供URL,脚本将无法运行。要实现此目的,您应该检查页面加载时window.location.hash是否等于'#Project'

希望这有帮助

顺便说一下。 Praveen Kumar提到的是改变你的代码如下:

<ul>
    <li onclick="project()">
        <a href="#Project">Projects</a>
    </li>
</ul>

答案 1 :(得分:1)

我假设您希望这可以在几个不同的锚上工作,所以您可以这样做:

<ul>
    <li onclick="project()">
        <a href="#Project">Projects</a>
    </li>
</ul>

<script>
    function project() {
        alert('Function project called')
    };

    var elements = document.querySelectorAll("a[href='" + window.location.hash + "']")
    if (elements.length > 0)
    {
        elements[0].click();
    };
</script>

当您导航到具有该哈希的网址时,此代码将确保点击任何哈希锚点。

答案 2 :(得分:0)

the link will be for example "www.test.com#myproject" 
and "function project" will be run automatically

 <!doctype html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
    <script>
    function project()
    {
      alert("hello");
    }    
    </script>
    </head>
    <body>
    <div id="myproject">
        <img src="test.jpg" onload="project()">
      <a>  sample text</a>
        <p>123456789</p>
        <ul>
          <li>one</li>
          <li>two</li>
          <li>three</li>
        </ul>
    </div>
    </body>
    </html>

答案 3 :(得分:0)

一个小例子

If (window.location.hash === '#Project')  {
  project() ;
}

答案 4 :(得分:0)

是的,这是可能的。你不必做<a href="#Project"> <li onclick="project()">Projects</li> </a>因为这是一个痛苦的代码。尝试这样做:

  `<ul>
      <li>
          <a href="#" onclick="project()">Projects</a>
      </li>
  </ul>`

当您单击项目时,它基本上运行名为project()的函数。根据您的代码,您只需浏览id Project的元素。


您也可以使用

<ul>
      <li>
          <a href="www.demo.com/projects.html">Projects</a>
      </li>
  </ul>

然后在projects.html 中运行您的脚本:

<script>

function project(){
  alert("I am your function.");
}

project(); //Call the function

</script>