MKS ( 三ヶ島製作所 )
MKS ( 三ヶ島製作所 ) フラットペダル FD-7 WIDE ( FD-7 ワイド ) シルバー
ユーザーレビュー
この商品に寄せられたカスタマーレビューはまだありません。
レビューを評価するにはログインが必要です。
(function () {
"use strict";
// ========================================
// 設定
// ========================================
var DEBUG = false;
var intervalTime = 200;
var maxWait = 10000;
// スマートフォン用のカートエリア
var cartAreaSelector = ".cart_action_button_";
// 在庫情報の要素
var stockSelector = "#spec_stock_msg";
// 在庫切れと判定する文言
var soldOutKeywords = [
"在庫なし",
"在庫切れ",
"品切れ",
"SOLD OUT"
];
// 対象カテゴリーID
var targetCategoryIds = [
"100101",
"100102",
"100103",
"100104",
"100105",
"100106",
"100107",
"100108",
"100109",
"100110",
"100111",
"100112",
"100113",
"100114",
"100115",
"100116",
"100201",
"100202",
"100203",
"100204",
"100205",
"100206",
"100207",
"100212"
];
// ========================================
// ログ出力
// ========================================
function log() {
if (!DEBUG) {
return;
}
console.log.apply(console, arguments);
}
// ========================================
// 要素取得
// ========================================
function getCartArea() {
return document.querySelector(cartAreaSelector);
}
function getStockMessage() {
var stockElement = document.querySelector(stockSelector);
if (!stockElement) {
return "";
}
return stockElement.textContent.trim();
}
// ========================================
// 在庫切れ判定
// ========================================
function isSoldOut(stockMessage) {
return soldOutKeywords.some(function (keyword) {
return stockMessage.toUpperCase().indexOf(
keyword.toUpperCase()
) !== -1;
});
}
// ========================================
// カテゴリー判定
// ========================================
function isTargetCategory() {
var categoryId = String(window.categoryId || "");
return targetCategoryIds.indexOf(categoryId) !== -1;
}
// ========================================
// 商品コード取得
// ========================================
function getGoodsId() {
return String(window.goodsId || "");
}
// ========================================
// 店舗在庫確認URL
// ========================================
function getStockUrl() {
var goodsId = getGoodsId();
return "https://online.ysroad.co.jp/shop/g/g" +
encodeURIComponent(goodsId) +
"/";
}
// ========================================
// 店舗在庫確認リンク作成
// ========================================
function createStockLink() {
var link = document.createElement("a");
link.href = getStockUrl();
link.target = "_blank";
link.rel = "noopener noreferrer";
link.textContent = "店舗在庫を確認する";
link.style.display = "block";
link.style.padding = "12px";
link.style.margin = "10px 0";
link.style.backgroundColor = "#333";
link.style.color = "#fff";
link.style.textAlign = "center";
link.style.textDecoration = "none";
link.style.fontWeight = "bold";
link.style.borderRadius = "4px";
return link;
}
// ========================================
// 在庫ありの場合の表示
// ========================================
function showInStockMessage(cartArea) {
if (cartArea.classList.contains("custom-applied")) {
return;
}
/*
* カートエリア内の購入操作要素を非表示にします。
* その後、エリア全体を案内表示に置き換えるため、
* 元の購入ボタンは残りません。
*/
cartArea.querySelectorAll(
"button, input[type='submit'], input[type='button']"
).forEach(function (element) {
element.style.display = "none";
});
// カートエリアの内容を置き換え
cartArea.innerHTML = "";
// 店舗在庫確認リンク
cartArea.appendChild(createStockLink());
// 案内文
var message = document.createElement("p");
message.textContent =
"店舗での在庫状況をご確認ください。";
message.style.margin = "10px 0";
message.style.fontSize = "14px";
message.style.lineHeight = "1.6";
message.style.textAlign = "center";
cartArea.appendChild(message);
cartArea.classList.add("custom-applied");
log("在庫あり表示に変更しました。");
}
// ========================================
// 在庫切れの場合の表示
// ========================================
function showSoldOutMessage(cartArea) {
if (cartArea.classList.contains("custom-applied")) {
return;
}
cartArea.innerHTML = "";
var message = document.createElement("div");
message.textContent = "現在、在庫切れです。";
message.style.padding = "12px";
message.style.margin = "10px 0";
message.style.backgroundColor = "#eee";
message.style.color = "#666";
message.style.textAlign = "center";
message.style.fontWeight = "bold";
message.style.borderRadius = "4px";
cartArea.appendChild(message);
cartArea.classList.add("custom-applied");
log("在庫切れ表示に変更しました。");
}
// ========================================
// メイン処理
// ========================================
function applyCustomDisplay() {
var cartArea = getCartArea();
var stockMessage = getStockMessage();
log("カートエリア:", cartArea);
log("在庫情報:", stockMessage);
log("カテゴリーID:", window.categoryId);
log("商品コード:", window.goodsId);
// カートエリアが見つからない場合
if (!cartArea) {
return false;
}
// 在庫情報が取得できない場合
if (!stockMessage) {
return false;
}
// 対象カテゴリー以外は処理しない
if (!isTargetCategory()) {
log("対象カテゴリー外のため処理をスキップします。");
return true;
}
// すでに処理済みの場合
if (cartArea.classList.contains("custom-applied")) {
return true;
}
// 在庫切れの場合
if (isSoldOut(stockMessage)) {
showSoldOutMessage(cartArea);
} else {
// 在庫あり・残り僅かの場合
showInStockMessage(cartArea);
}
return true;
}
// ========================================
// DOM読み込み後に実行
// ========================================
function waitForElements() {
var elapsedTime = 0;
var timer = setInterval(function () {
var completed = applyCustomDisplay();
if (completed) {
clearInterval(timer);
return;
}
elapsedTime += intervalTime;
if (elapsedTime >= maxWait) {
clearInterval(timer);
log(
"タイムアウト:必要な要素を取得できませんでした。"
);
}
}, intervalTime);
}
// ========================================
// 実行
// ========================================
if (document.readyState === "loading") {
document.addEventListener(
"DOMContentLoaded",
waitForElements
);
} else {
waitForElements();
}
})();
フォールディング・ペダルとして名の知れたFD-7に、WIDEバージョンが登場です。