I have some code that'll allow me to open up a random website from a list of websites but I'd like to open each one up in a new tab, how do I do this?
Information you may need
the code
<html>
<button onclick="randomLink();OpenInNewTab();">Click here to go somewhere else! </button>
<script type="text/javascript">
var randomLink = function () {
// first create an array of links
var links = [
"bbc",
"google",
"youtube",
"facebook"
];
// then work out the maximum random number size
// by counting the number of links in the array
var max = (links.length)
// now generate a random number
var randomNumber = Math.floor(Math.random()*max);
// use that random number to retrieve a link from the array
var link = links[randomNumber];
// change the location of the window object
window.location = "http://" + link;
// Opens a new tab.
function OpenInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
}
</script>
</html>
I tried doing the action in question at two different points and hope you're input can help to correct this.
Location 1
<button onclick="randomLink();OpenInNewTab();">Click here to go somewhere else!
Location 2
// Opens a new tab.
function OpenInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
The following web address is what the code currently looks like and does.
- /
*EDIT : The only changes I made are the websites.They're much more on the live demo.
I have some code that'll allow me to open up a random website from a list of websites but I'd like to open each one up in a new tab, how do I do this?
Information you may need
the code
<html>
<button onclick="randomLink();OpenInNewTab();">Click here to go somewhere else! </button>
<script type="text/javascript">
var randomLink = function () {
// first create an array of links
var links = [
"bbc.",
"google.",
"youtube.",
"facebook."
];
// then work out the maximum random number size
// by counting the number of links in the array
var max = (links.length)
// now generate a random number
var randomNumber = Math.floor(Math.random()*max);
// use that random number to retrieve a link from the array
var link = links[randomNumber];
// change the location of the window object
window.location = "http://" + link;
// Opens a new tab.
function OpenInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
}
}
</script>
</html>
I tried doing the action in question at two different points and hope you're input can help to correct this.
Location 1
<button onclick="randomLink();OpenInNewTab();">Click here to go somewhere else!
Location 2
// Opens a new tab.
function OpenInNewTab(url) {
var win = window.open(url, '_blank');
win.focus();
The following web address is what the code currently looks like and does.
- http://holyshitthisisalotofuselesscraponotherwebsites./
*EDIT : The only changes I made are the websites.They're much more on the live demo.
Share Improve this question edited Jul 1, 2014 at 13:17 Konstantin V. Salikhov 4,6532 gold badges37 silver badges48 bronze badges asked Jul 1, 2014 at 11:40 flyinggoatmanflyinggoatman 431 silver badge3 bronze badges 4- check this stackoverflow./questions/4907843/… – ashok_p Commented Jul 1, 2014 at 11:50
- call OpenInNewTab() at the end of the randomLink() function (from inside the function). It is within the scope of that funtion. – EthanK Commented Jul 1, 2014 at 11:51
- Please could you display the changes for me? because I tried and it wouldn't work. @Ethan – flyinggoatman Commented Jul 1, 2014 at 13:09
- @ashok_p I already tried and it just did not work :( – flyinggoatman Commented Jul 1, 2014 at 13:19
2 Answers
Reset to default 2The code you wrote is wrong, since you change the address of the current window (via the line window.location=...
, and other issues... but here:
Working example fiddle
Very similar, and works.
Code
HTML
<button onclick="openStuff();">Click here to go somewhere else!</button>
JS
// the used links
var links = [
"bbc.",
"google.",
"youtube.",
"facebook."];
openStuff = function () {
// get a random number between 0 and the number of links
var randIdx = Math.random() * links.length;
// round it, so it can be used as array index
randIdx = parseInt(randIdx, 10);
// construct the link to be opened
var link = 'http://' + links[randIdx];
// open it in a new window / tab (depends on browser setting)
window.open(link);
};
Based on Matyas' answer, I updated the example to work in strict mode. Working Example on Codepen.
Code
HTML
<button id="open-link">Click here to go somewhere else!</button>
JS
"use strict";
// the used links
const links = ["bbc.", "google.", "youtube.", "facebook."];
const openLink = function (links) {
// get a random number between 0 and the number of links
// and round it, so it can be used as array index
const randIdx = parseInt(Math.random() * links.length, 10);
// construct the link to be opened
const link = "https://" + links[randIdx];
// open it in a new window or tab (depends on browser setting)
window.open(link);
};
window.onload = function () {
document.getElementById("open-link").onclick = () => openLink(links);
};
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745637870a4637505.html
评论列表(0条)