Select Pinterest 上所有图片移动到另一个图板
Select all images on Pinterest for moving to another board
更新:(2015-10-16)[已解决!]——已通过 trigger() 修复并通过 slice() 限制为 50 个引脚.
非常感谢 Abhas Tandon 使用
提供的
$(this).trigger('click');
而不是
$(this).addClass('selected');
它将正确 select 图像。我用包含 21 张图像的板进行了测试,效果非常好!但是,当尝试移动 300 多个引脚时,失败并出现以下错误:
"You can only move 50 Pins at a time."
然后我通过使用 JavaScript 的 slice() 函数只抓取前 50 张图像解决了这个问题。经过测试,它现在可以正常工作。所以我目前的限制是我一次只能 select 并移动 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();
问题描述:
我在开发 Pinterest 界面 (?) 脚本 (?) 时遇到了一些问题。我是一名程序员,主要是自学成才,我想我可能缺少理解 AJAX 的一些关键组成部分?这是我第二次尝试编写 jQuery 脚本来与 Pinterest 交互。第一个是试图破坏无限滚动功能(又名 "load more" 按钮),以便将所有图像显示在一个页面上,我可以从中抓取图像链接,然后使用浏览器插件下载它们以备份我的Pinterest 板到我的电脑。我的代码一切正常,只是它实际上并没有最终下载任何图像。
很失望,我搁置了它以专注于其他事情。最终我重新审视了我的代码并进行了一些挖掘,它应该可以工作。我的研究表明,可能一直在阻止我的程序执行我想要的操作的严重缺陷与 "Pinterest uses AJAX" 有关。虽然我知道术语 "Asynchronous JavaScript with XML" 和 "XMLHttpRequest",但我并不是实施 AJAX.
的专家
用我最新的代码,我写了一个——你会认为它会是——快速的小 jQuery 脚本到 select 所有图像,这样我就可以移动、删除、复制它们,等等...问题是,虽然选中所有框都有效(例如,您必须在面板中并单击 "Move"),但当我再次单击 "Move" 按钮时,应该会弹出 -建立一个模式让选择要移动到哪个板,我得到的只是
Oops!
Select the Pins you want to move.
正在使用:
- Chrome 45.0.2454.101
- Windows 8.1 64 位
如何重现问题:
- 在笔记本电脑或台式电脑上登录您的 Pinterest 帐户。
- 选择一块板或从头开始构建测试板(这样您就不会松动任何当前引脚)。
- 点击右上角的"Move"。这将使透明复选框出现在每个图像的右上角。注意:Pinterest 显示他们未选中的复选框,其中已经有一个复选标记。您知道框已被选中的方式是它保留复选标记并且框背景变为实心(不再透明)红色。
- 在您的浏览器中启动您的开发者工具控制台 (Firefox/Chrome: F12)。
- 将以下脚本添加到浏览器中的 JavaScript 控制台。
- 运行 脚本。如果它 "worked" 你应该看到所有的复选框现在都是红色的。
- 再次单击 "More" 按钮。现在您将收到 "Select the Pins you want to move." 消息,表明实际上 select 都不起作用。
注意:此时我不关心分页,但如果有人想解决这个问题,我也愿意接受有关该问题的解决方案。
SELECT 所有图像的脚本:
/*
@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();
//});
我已经尝试解决的问题:
用 Google 搜索解决方案。我找到了以下文章。最后一个似乎是我需要的,但它似乎没有足够关注我的问题。
- Whosebug | jQuery to add a class to image links without messing up when the link passes variables
- Quora | Pinterest User Feedback: Can you provide options to "select multiple pins and pin them into a board" or "to pin an image into multiple boards at a time"?
- Whosebug | Identify & Extract the title/description of an Image (Data Scraping Pinterest)
- Whosebug | Get all images from a board from a Pinterest web address
最初尝试将每个复选框的 "checked" 属性 设置为 "true",但最终没有选中这些复选框(为什么??)。但是,然后我在浏览器控制台中观察到,当我单击 select 图像时,"selected" class 已应用于该图像。因此,我使用 addClass() 将 class 应用到我代码中的所有复选框,然后我能够将所有复选框正确地设置为 select ...或者看起来是这样。
我通过调用 $(document).ready 尝试了代码,但它给了我错误
"Uncaught ReferenceError: checkBoxes is not defined(…)"
我花了很长时间才格式化...在此先感谢您的帮助。如果有任何不清楚的地方,我很乐意澄清。另外,请让我知道此 post 是否属于其他论坛。谢谢。
我尝试在每个元素上触发 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();
让我知道它是否适合你。
更新:(2015-10-16)[已解决!]——已通过 trigger() 修复并通过 slice() 限制为 50 个引脚.
非常感谢 Abhas Tandon 使用
提供的$(this).trigger('click');
而不是
$(this).addClass('selected');
它将正确 select 图像。我用包含 21 张图像的板进行了测试,效果非常好!但是,当尝试移动 300 多个引脚时,失败并出现以下错误:
"You can only move 50 Pins at a time."
然后我通过使用 JavaScript 的 slice() 函数只抓取前 50 张图像解决了这个问题。经过测试,它现在可以正常工作。所以我目前的限制是我一次只能 select 并移动 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();
问题描述:
我在开发 Pinterest 界面 (?) 脚本 (?) 时遇到了一些问题。我是一名程序员,主要是自学成才,我想我可能缺少理解 AJAX 的一些关键组成部分?这是我第二次尝试编写 jQuery 脚本来与 Pinterest 交互。第一个是试图破坏无限滚动功能(又名 "load more" 按钮),以便将所有图像显示在一个页面上,我可以从中抓取图像链接,然后使用浏览器插件下载它们以备份我的Pinterest 板到我的电脑。我的代码一切正常,只是它实际上并没有最终下载任何图像。
很失望,我搁置了它以专注于其他事情。最终我重新审视了我的代码并进行了一些挖掘,它应该可以工作。我的研究表明,可能一直在阻止我的程序执行我想要的操作的严重缺陷与 "Pinterest uses AJAX" 有关。虽然我知道术语 "Asynchronous JavaScript with XML" 和 "XMLHttpRequest",但我并不是实施 AJAX.
的专家用我最新的代码,我写了一个——你会认为它会是——快速的小 jQuery 脚本到 select 所有图像,这样我就可以移动、删除、复制它们,等等...问题是,虽然选中所有框都有效(例如,您必须在面板中并单击 "Move"),但当我再次单击 "Move" 按钮时,应该会弹出 -建立一个模式让选择要移动到哪个板,我得到的只是
Oops!
Select the Pins you want to move.
正在使用:
- Chrome 45.0.2454.101
- Windows 8.1 64 位
如何重现问题:
- 在笔记本电脑或台式电脑上登录您的 Pinterest 帐户。
- 选择一块板或从头开始构建测试板(这样您就不会松动任何当前引脚)。
- 点击右上角的"Move"。这将使透明复选框出现在每个图像的右上角。注意:Pinterest 显示他们未选中的复选框,其中已经有一个复选标记。您知道框已被选中的方式是它保留复选标记并且框背景变为实心(不再透明)红色。
- 在您的浏览器中启动您的开发者工具控制台 (Firefox/Chrome: F12)。
- 将以下脚本添加到浏览器中的 JavaScript 控制台。
- 运行 脚本。如果它 "worked" 你应该看到所有的复选框现在都是红色的。
- 再次单击 "More" 按钮。现在您将收到 "Select the Pins you want to move." 消息,表明实际上 select 都不起作用。
注意:此时我不关心分页,但如果有人想解决这个问题,我也愿意接受有关该问题的解决方案。
SELECT 所有图像的脚本:
/*
@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();
//});
我已经尝试解决的问题:
用 Google 搜索解决方案。我找到了以下文章。最后一个似乎是我需要的,但它似乎没有足够关注我的问题。
- Whosebug | jQuery to add a class to image links without messing up when the link passes variables
- Quora | Pinterest User Feedback: Can you provide options to "select multiple pins and pin them into a board" or "to pin an image into multiple boards at a time"?
- Whosebug | Identify & Extract the title/description of an Image (Data Scraping Pinterest)
- Whosebug | Get all images from a board from a Pinterest web address
最初尝试将每个复选框的 "checked" 属性 设置为 "true",但最终没有选中这些复选框(为什么??)。但是,然后我在浏览器控制台中观察到,当我单击 select 图像时,"selected" class 已应用于该图像。因此,我使用 addClass() 将 class 应用到我代码中的所有复选框,然后我能够将所有复选框正确地设置为 select ...或者看起来是这样。
我通过调用 $(document).ready 尝试了代码,但它给了我错误
"Uncaught ReferenceError: checkBoxes is not defined(…)"
我花了很长时间才格式化...在此先感谢您的帮助。如果有任何不清楚的地方,我很乐意澄清。另外,请让我知道此 post 是否属于其他论坛。谢谢。
我尝试在每个元素上触发 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();
让我知道它是否适合你。