Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript对我们有利吗?_Javascript - Fatal编程技术网

使用JavaScript对我们有利吗?

使用JavaScript对我们有利吗?,javascript,Javascript,我最近刚开始学习JavaScript,出现了一个问题,但我找不到确切的答案。所以,如果我说了一些愚蠢的话,或者我把无关的事情联系起来,请容忍我 有一个简单的例子:当转到Youtube频道的视频页面时,一个脚本可能会在页面上加载30个视频,如第1页。当滚动到底部时,它会加载另外30个视频 1所以问题是:我可以在浏览器的控制台中运行JavaScript代码来强制执行此事件吗?我可以使用自定义参数使其加载35而不是30吗?或者这是服务器端的东西,无法修改 2如果可能的话,为了扩展这个问题,是因为我们可

我最近刚开始学习JavaScript,出现了一个问题,但我找不到确切的答案。所以,如果我说了一些愚蠢的话,或者我把无关的事情联系起来,请容忍我

有一个简单的例子:当转到Youtube频道的视频页面时,一个脚本可能会在页面上加载30个视频,如第1页。当滚动到底部时,它会加载另外30个视频

1所以问题是:我可以在浏览器的控制台中运行JavaScript代码来强制执行此事件吗?我可以使用自定义参数使其加载35而不是30吗?或者这是服务器端的东西,无法修改

2如果可能的话,为了扩展这个问题,是因为我们可以访问API吗?如果在站点上实际列出这些视频不需要凭据,那么在我的示例中,我们可以命令它加载或加载更多视频?或者甚至用类似的东西自动应用此更改


提前谢谢

即使你成功地操纵了JS,你仍然会受到他们API允许的限制。YouTube频道上的滚动->加载行为使用https://www.youtube.com/browse_ajax? API端点并传递一个延续标记,所以不要说从第80页开始给我第10页或20个结果,而是说给我第一页,然后该响应包含一个延续标记,发送时将给你下一页。这意味着您无法通过API调用控制加载结果的数量。它是在服务器端配置的,您无法控制它。你唯一能做的就是加载多个页面,而不是一个页面。

为了更清楚:你是在问是否可以创建一个脚本来修改youtube.com的功能,还是以youtube为例?有时很难确定如何强制事件,而且往往是否定的,您无法指定自定义参数,因为服务器不支持这些参数。通常,YouTube等网页会将其变量包含在模块中以确保安全。所以你很可能无法直接触发事件。可以做的是用侦听器模拟元素上的事件,使YouTube脚本认为页面已被滚动。回答第一个问题-是,回答第二个问题-否,因为它是一个DOM事件,实际加载了这30多个视频,所以您可以从浏览器访问所有DOM事件。您只需在浏览器控制台中执行类似window.scrollTox,y的操作,即可尝试并触发此事件。这是可能的,因为我们只是通过JS模仿一般的用户行为。我刚刚在youtube上试过这个方法,它可能在任何类似的地方都能起作用:youtube.com只是一个例子,实际上我在另一个网站上遇到了这个问题。但这就是我想知道的,是否可以部分或全部锁定对这些事件的访问。这是否适用于所有使用类似加载更多视频或图片方法的网站,或者有一些网站不适合像谷歌这样的大公司,它只使用JS解决这个问题,并使之成为可能?你会发现许多不同的分页实现。有些允许您发送每页多少,但实际值仅限于10、20、40、60,而不是任何数字。有些人会要求提供页面索引。有些人会要求尺寸+偏移量。有些人会向你发送完整的URL以请求下一页。为什么有不同的实现?因为每个人都有不同的需求。例如,Youtube可能会这样做,因为如果API对输入的要求更严格,那么缓存结果就更容易了。谢谢你的详细回答!