Eri*_*010 9 javascript ajax jquery reverse-engineering pinterest
非常感谢Abhas Tandon通过使用提出这一点
$(this).trigger('click');
Run Code Online (Sandbox Code Playgroud)
代替
$(this).addClass('selected');
Run Code Online (Sandbox Code Playgroud)
它会正确选择图像.我测试了一个由21个图像组成的板,它工作得很完美!但是,当试图移动300多个引脚时,它失败并出现此错误:
"You can only move 50 Pins at a time."
Run Code Online (Sandbox Code Playgroud)
然后,我通过使用JavaScript的slice()函数来获取前50个图像,从而解决了这个问题.经过测试,现在可以正常使用.所以我的目标是,我一次只能选择并移动50个针脚,但这比用手一个一个地挑选它们要好得多!
function checkAll() {
console.log("Checkboxes count: " + checkBoxes.length);
$.each(checkBoxes, function(i, v) {
console.log("Checkbox #: " + i)// + " = " + v);
$(this).trigger('click');
});
}
var checkBoxes = $("div > div > div.bulkEditPinWrapper > button");
var checkBoxes = checkBoxes.slice(1, 51);
checkAll();
Run Code Online (Sandbox Code Playgroud)
我正在开发一个Pinterest接口(?)脚本(?)有些麻烦.我是一名程序员,大多是自学成才,我想我可能缺少一些关于AJAX理解的关键部分?这是我第二次尝试编写一个jQuery脚本来与Pinterest进行交互.第一个尝试打败无限滚动功能(AKA"加载更多"按钮),以便将所有图像显示在一个页面上,我可以从中抓取图像链接,然后使用浏览器插件下载它们以备份我的Pinterest登上我的电脑.我的代码全部工作,除了它实际上没有下载任何图像.
失望,我把它暂时放在了其他的东西上.最后,我重新访问了我的代码并进行了一些挖掘,它应该有效.我的研究表明,可能阻止我的程序做我想做的关键FLAW就是"Pinterest使用AJAX".虽然我知道"使用XML的异步JavaScript"和"XMLHttpRequest"这两个术语,但我在实施AJAX方面并不是一个专家.
使用我的最新代码,我写了一个 - 你会认为它会是 - 快速的小jQuery脚本来选择所有图像,以便我可以移动它们,删除,复制等...问题是,虽然检查所有的框工作(你必须在一个板子,然后点击"移动"),当我第二次点击"移动"按钮时,应该弹出一个模态让我们选择要移动到哪个板,我得到的只是
Oops!
Select the Pins you want to move.
Run Code Online (Sandbox Code Playgroud)
注意:我现在并不关心分页,但如果有人想解决这个问题,我也会对这个问题的解决方案持开放态度.
/*
@Repo: EHW-JavaScript-Pinterest-SelectAllImages.
@Creator: Eric Hepperle (CodeSlayer2010/CodeWizard13)
@Date: 10/15/15
@Version: 1.0
@Purpose: Click "Move" in Pinterest board to move pins.
Once checkboxes are visible, run this in an
F12 browser console to automatically check all
visible image pins. You will have success when
the color of all checkboxes turns red. Then
click "Move" again to finish.
@Notes:
2015.10.15
- Created script.
- Checks all checkboxes, but does not allow moving.
*/
function checkAll() {
console.log("Checkboxes count: " + checkBoxes.length);
$.each(checkBoxes, function(i, v) {
console.log("Checkbox #: " + i)// + " = " + v);
$(this).addClass('selected');
});
}
//$(document).ready(function() {
alert('hi');
var checkBoxes = $("div > div > div.bulkEditPinWrapper > button");
checkAll();
//});
Run Code Online (Sandbox Code Playgroud)
用Google搜索解决方案.我发现了以下文章.最后一个似乎可能就是我需要的东西,但它似乎没有足够重视我的问题.
最初尝试将每个复选框的"已检查"属性设置为"true",但它最终没有检查框(为什么??).但是,我在浏览器控制台中观察到,当我点击选择图像时,"选定"类被应用于该图像.所以,我使用addClass()将该类应用于我的代码中的所有复选框,并且我能够正确选择所有复选框,然后......或者看起来如此.
我通过调用$(document).ready来尝试代码,但它给了我错误
"Uncaught ReferenceError: checkBoxes is not defined(…)"
Run Code Online (Sandbox Code Playgroud)
我花了很长时间来格式化这个......感谢您的帮助.我很高兴澄清是否有任何不清楚的地方.另外,如果此帖子属于其他论坛,请告诉我.谢谢.
我尝试click在每个元素上触发事件,它对我来说非常有效。无法尝试滚动,因为我的板上没有那么多图像。
function checkAll() {
console.log("Checkboxes count: " + checkBoxes.length);
$.each(checkBoxes, function(i, v) {
console.log("Checkbox #: " + i) // + " = " + v);
$(this).trigger('click');
});
}
var checkBoxes = $("div > div > div.bulkEditPinWrapper > button");
checkAll();
Run Code Online (Sandbox Code Playgroud)
请让我知道这对你有没有用。
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |