如何选择页面加载选项
How to select option on page load
我正试图为chrome扩展编写一些JS代码,以便在页面加载时自动选择一个选项。到目前为止,我还没能弄清楚。这就是我的
document.getElementByValue("9.0").selected=true;
我想做的是让它选择选项,然后使用--点击提交按钮
document.getElementByClass('active_step').click();
这是我测试的页面-测试页面
好的,我想我已经接近了,我正在使用以下代码——
function SubmitIt(){
$("input[name='pdp_addtocart']").click();
}
function SelectIt(){
document.getElementById("product_sizes").selectedIndex = 3;
}
SelectIt();
SubmitIt();
选择选项被突出显示,但实际上并没有被点击,因为页面告诉我先选择一个选项,我假设我的代码尝试点击提交。所以现在我需要弄清楚如何实际点击突出显示的选项。
在对测试页面进行了一些处理之后,发现除了设置product_sizes
<select>
元素的选定值之外,后台还有更多事情要做。还有一个隐藏的<input>
元素,它保存实际选定的值,因此也必须设置它的值(见下面的代码):
manifest.json:
{
"manifest_version": 2,
"name": "Test Extension",
"version": "0.0",
"offline_enabled": false,
"content_scripts": [{
"matches": ["*://www.example.com/*"],
"js": ["content.js"],
"run_at": "document_end",
"all_frames": false
}]
}
content.js:
var selectedIdx = 3;
var selectSize = document.querySelector('select#product_sizes');
var hiddenSize = document.querySelector('input[type="hidden"]#pdp_selectedSize');
var addToCart = document.querySelector(
'input[type="submit"][name="pdp_addtocart"]');
if ((selectSize !== undefined) && (hiddenSize !== undefined)
&& (addToCart !== undefined)) {
selectSize.selectedIndex = 3;
hiddenSize.value = selectSize.value;
addToCart.click();
}
<更新>
要根据大小进行选择,请修改content.js,如下所示:
var targetSize = 9.0;
var selectSize = document.querySelector('select#product_sizes');
var hiddenSize = document.querySelector('input[type="hidden"]#pdp_selectedSize');
var addToCart = document.querySelector(
'input[type="submit"][name="pdp_addtocart"]');
if ((selectSize !== undefined) && (hiddenSize !== undefined)
&& (addToCart !== undefined)) {
var targetSizeStr = targetSize.toFixed(1);
var optionFound = [].slice.call(selectSize.querySelectorAll('option'))
.some(function(opt) {
if (parseFloat(opt.value).toFixed(1) === targetSizeStr) {
hiddenSize.value = opt.value;
return true;
}
return false;
});
optionFound && addToCart.click();
}
<更新>
注意:如果您关心页面的外观(即不仅要将项目添加到购物车中,而且您希望页面的外观与手动选择大小时的外观完全相同等),则需要进行一些额外的修改。例如,隐藏<select>
元素(display: none;
),将<select>
正上方的<a>
元素的data-content
属性设置为<select>
的值,将其类设置为size_selected
,将addToCart<a>
的类设置为active_step
,甚至更多。
相关文章:
- 过滤”;溢价;页面加载选项使用混合
- Jquery-从不同链接加载选项卡
- 如何选择页面加载选项
- Rally App SDK 2.0:rallymultiobjectpicker无法加载选项文本
- 如何在加载选项卡内容时显示加载图像
- 单击图像时从数据库加载选项id
- 如何在页面加载时自动加载选项卡内容(外部链接)
- 根据上一个选项卡的选择器重新加载选项卡
- 如何在 ui-sref 标记中放置重新加载选项
- j查询更改下拉列表调用 Web 服务以加载选项
- 在 HTML 模板的变量中使用 jQuery 查找选择以加载选项
- 使用 Ajax 调用加载选项卡内容
- 如何在重新加载选项(浏览器)时限制页面加载
- jquery ui ajax选项卡-重新加载选项卡,或更改选项卡位置
- 页面加载准备就绪时加载选项卡中的内容
- 单击“加载选项卡内容”
- 从服务器中选择加载选项
- 更改从存储加载选项的下拉dojo的字体大小
- 异步淘汰observableArray选择加载选项
- Chrome扩展:如何使用键盘事件从任何地方重新加载选项卡