【问题标题】:Script to open sequential links each time you click the button每次单击按钮时打开顺序链接的脚本
【发布时间】:2020-03-13 13:14:47
【问题描述】:

我有一个随机打开链接的脚本......但我需要知道如何创建一个脚本来自己打开一个链接,然后返回到最初的那个。例如... 单击按钮,它会打开链接 1。再次单击它,它会再次打开link2 ...并打开link3 ....然后打开link4 ....然后再次打开link1。 我正在使用这个脚本让他随机打开链接....但我需要它是连续的,在打开最后一个链接后,他再次打开 link1。你们能帮帮我吗?! 最好的祝福! 亚历克斯。


<script>
<! -
/ *
Random Links Button
* /

// Specify the links to work at random below. You can enter as many as needed
var randomlinks=new Array()

randomlinks[0]="https://website1.com"
randomlinks[1]="https://website2.com"
randomlinks[2]="https://website3.com"
randomlinks[3]="https://website4.com"

function randomlink(){
window.location=randomlinks[Math.floor(Math.random()*randomlinks.length)]
}
// - END OF SCRIPT-

</script>

【问题讨论】:

  • 如果您使用php或任何服务器端语言,您可以通过链接发送数组的索引,然后将其用作get变量。
  • 我不知道这是否工作得很好....我需要一个解决方案,每次访问该站点时输入一个序列列表中的链接。在这种情况下,如果他给出 F5(当点击新会话时),他总是会选择第一个......它必须是一个精确的顺序,但在不同的会话中......第一个访问者 1 单击此按钮并转到链接 1 .. .visitande2 转到link2 等等...在这种情况下,我想我必须创建一些变量以在wordpress 数据库中注册,以便它可以检查显示列表中的最后一个链接...。我得到了要清楚吗?很抱歉没有说清楚。

标签: javascript html web


【解决方案1】:

您应该能够在函数中修改一个用作点击计数器的全局变量。例如:

var randomlinks=new Array();
    randomlinks[0]="https://website1.com"
    randomlinks[1]="https://website2.com"
    randomlinks[2]="https://website3.com"
    randomlinks[3]="https://website4.com"

var i=0;

function clickroundrobin(e){
    if( i >= randomlinks.length )i=0;
    var url=randomlinks[i];
    i++;
    window.location=url;
}

测试:

			var randomlinks=new Array();
				randomlinks[0]="https://website1.com"
				randomlinks[1]="https://website2.com"
				randomlinks[2]="https://website3.com"
				randomlinks[3]="https://website4.com"
				
			var i=0;

			function clickroundrobin(e){
				if( i >= randomlinks.length )i=0;
				var url=randomlinks[i];
				i++;
				//window.location=url;
				alert( url )
			}
&lt;a href='#' onclick='clickroundrobin(event)'&gt;Click&lt;/a&gt;

【讨论】:

  • 我不知道这是否工作得很好....我需要一个解决方案,每次访问该站点时输入一个序列列表中的链接。在这种情况下,如果他给出 F5(当点击新会话时),他总是会选择第一个......它必须是一个精确的顺序,但在不同的会话中......第一个访问者 1 单击此按钮并转到链接 1 .. .visitande2 转到link2 等等...在这种情况下,我想我必须创建一些变量以在wordpress 数据库中注册,以便它可以检查显示列表中的最后一个链接...。我得到了要清楚吗?很抱歉没有说清楚。
  • "for each visit of the site" 建议您正在寻找影响所有用户而不是单个用户的round-robin 解决方案,或者您的意思是需要维护状态"per-user" 请尝试澄清您确切要求,因为这些区别在问题中没有明确说明。
【解决方案2】:

您可以使用 window.open 并通过迭代按钮上的变量值并将其作为数组索引传递来做到这一点

<button onclick="randomlink()" >Random Link</button>
<script>
Links = []
Links.push("https://alloytech.wordpress.com");
Links.push("https://www.google.com/");
Links.push("https://www.youtube.com/");
Links.push("https://www.stackoverflow.com/");
var randomParam=0;
function randomlink() {
randomParam = randomParam >= Links.length?0:randomParam;
window.open(Links[randomParam],'popUpWindow','height=400,width=800,scrollbars=yes');  
randomParam++;
}
</script>

我想这就是你所期待的

【讨论】:

  • 你可以解释你做了什么不同的事情,以及为什么。此外,在描述中,他们不希望它是“随机的”,而是“顺序的”。
  • 我不知道这是否工作得很好....我需要一个解决方案,每次访问该站点时输入一个序列列表中的链接。在这种情况下,如果他给出 F5(当点击新会话时),他总是会选择第一个......它必须是一个精确的顺序,但在不同的会话中......第一个访问者 1 单击此按钮并转到链接 1 .. .visitande2 转到link2 等等...在这种情况下,我想我必须创建一些变量以在wordpress 数据库中注册,以便它可以检查显示列表中的最后一个链接...。我得到了要清楚吗?很抱歉没有说清楚。
  • 那么你应该在数据库中有一个迭代值,你应该在页面加载时增加它,如果它达到最大限制,你应该重置迭代器并在按钮点击函数中传递那个,这样您将为不同的用户获得不同的窗口
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
相关资源
最近更新 更多