Javascript 从json文件重定向到随机url
我有一个充满链接的json文件,我想做一个随机按钮重定向到json文件上列出的一些链接 json文件示例:Javascript 从json文件重定向到随机url,javascript,jquery,json,Javascript,Jquery,Json,我有一个充满链接的json文件,我想做一个随机按钮重定向到json文件上列出的一些链接 json文件示例: {"pages":[ { "url": "https://www.google.com/" }, { "url": "https://stackoverflow.com/" }, { "url": "https://www.twitter.com/" }, { "ur
{"pages":[
{
"url": "https://www.google.com/"
},
{
"url": "https://stackoverflow.com/"
},
{
"url": "https://www.twitter.com/"
},
{
"url": "https://www.facebook.com/"
},
]
}
可以使用在0和数组长度之间选择一个随机数。然后将其转换为整数
然后可以将该值用作从数组中拾取随机对象的索引
一旦你有了location.href
或location.replace()
可以用来将页面重定向到随机选取的url。代码示例如下:
var json={
“页数”:[{
“url”:”https://www.google.com/"
},
{
“url”:”https://stackoverflow.com/"
},
{
“url”:”https://www.twitter.com/"
},
{
“url”:”https://www.facebook.com/"
},
]
};
var index=Math.floor(Math.random()*json.pages.length);
var url=json.pages[index].url;
log(“重定向到:+url”);
location.href=url代码>使用javascript Math.random()函数和Math.floor()函数在任意范围内生成一个随机数
在您的情况下,它将是数组大小的0。使用上述函数生成一个随机数,然后选择该索引并在单击按钮时重定向到该链接
HTML
<button id="randomLinkButton">
Random Page
</button>
处理按钮的单击处理程序的更好方法,如中所示
由于被阻止,重定向的页面在JSFIDLE中将显示为空白
让我们看看你试过什么?张贴代码谢谢,这正是我一直在寻找的,你能告诉我如何将其用作文件吗?like var json={url.json}很抱歉,我尝试了like,但似乎不起作用:var json=$.getJSON(“/index.json”,function(){console.log(“success”);})$('button')。单击(function(){var index=Math.floor(Math.random()*json.pages.length);location.href=json.pages[index].url;});从getJSON检索到的数据可以在回调函数中读取。检查更新的代码。@H77我已经使用了您的代码从数组中获取随机URL,这归功于您:)
function getRandomUrl(){
// define your source JSON data file URL
var url = 'http://server/file',
def = $.Deferred();
$.getJSON( url ).done(function( data ){
// received
// get random index
var randomIndex = Math.floor(Math.random() * data.pages.length);
// resolve with random URL
def.resolve( data.pages[ randomIndex ].url );
}).fail( function( error ){
// failed
def.reject( error );
});
return def;
}
$(document).ready( function(){
getRandomUrl().done(function(url){
// button click code
var buttonClickCode = "window.location.href = '" + url + "'";
// button click handler
$('#randomLinkButton').attr('onClick', buttonClickCode)
}).fail(function(){
// failed
});
});