<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 {
}
必须设置超时,因此首先加载页面然后执行函数
答案 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>