-50% de descuento* Si compras la misma norma UNE en distintos idiomas. * Dto. sobre el pvp inferior. Ver condiciones

ISO 9656:2004

Pliers and nippers for electronics — Test methods

window.ecomNormaScripts = window.ecomNormaScripts || (function () { /* ===================================== PROPIEDADES PRIVADAS ===================================== */ const privateProps = window.ecomNormaScripts?.privateProps || { //test1: {}, //test2: 0 }; /* ===================================== INICIALIZACIÓN DE PROPERTIES PRIVADAS ===================================== */ (function initPrivateProps() { /* privateProps.test1 = { test11: "", test111: { test1112: "00,00", test1113: "€", test1114: "00", test1115: "000-00-000", test1116: "0000", test1117: "000" }, test2: "" };*/ })(); /* ===================================== PROPIEDADES PÚBLICAS ===================================== */ const publicProps = { funcsEcomGlobalScripts: null, propsEcomGlobalScripts: null, isDebug: false }; /* ===================================== INICIALIZACIÓN DE PROPERTIES PÚBLICAS ===================================== */ (function initPublicProps() { //publicProps.TEST1 = ""; //publicProps.TEST2 = 0; })(); /* ===================================== FUNCIONES PÚBLICAS ===================================== */ //En functions declaramos la functions publicas const functions = {}; functions.init = async function () { await _initPublicProps(); await _DOMContentLoaded(); }; /* ===================================== FUNCIONES PRIVADAS ===================================== */ const _initPublicProps = async function() { // Obtener referencias de ecomGlobalScripts publicProps.funcsEcomGlobalScripts = window.ecomGlobalScripts?.functions || {}; publicProps.propsEcomGlobalScripts = window.ecomGlobalScripts?.properties || {}; // Configurar debug publicProps.isDebug = (false || publicProps.propsEcomGlobalScripts?.isDebug) ?? false; // Asegurar que querySelectors existe (crearlo si no existe) publicProps.propsEcomGlobalScripts.querySelectors ??= {}; // Agregar las propiedades querySelectors publicProps.propsEcomGlobalScripts.querySelectors.rootSelector = "#ecom-norma-detail-normas-referenced .standards-section"; }; const _DOMContentLoaded = async function () { //Se llama desde [dxp-ecom-portal/misc/adt/tienda/Detalle producto/ECOM-Global-Scripts.ftl] desde: document.addEventListener("DOMContentLoaded") if (publicProps.isDebug) console.log("DOMContentLoaded ecom Norma scripts"); window.ecomGlobalScripts?.functions?.pushViewItemEvent?.({ name: "SAE AS43024-2", id: "AS43024-2", category: "Normas SAE" }); }; // ---- Execute Listener DOMContentLoaded ---- document.addEventListener("DOMContentLoaded", async function() { //Se llama desde [dxp-ecom-portal/misc/adt/tienda/Detalle producto/ECOM-Global-Scripts.ftl] desde: document.addEventListener("DOMContentLoaded") //await _DOMContentLoaded(); }); /* ===================================== API PÚBLICA ===================================== */ return { properties: publicProps, // properties public functions: functions // functions public }; })();

Precios sin IVA ni gastos de envío

", { value: v, text: textFn ? textFn(v) : v })); }); if (keep && values.includes(keep)) $sel.val(keep); else if (values.length) $sel.val(values[0]); } function _relabel($sel, textFn) { $sel.find("option").each(function () { const v = $(this).attr("value"); $(this).text(textFn ? textFn(v) : v); }); } /* === initCarousel — PÚBLICA === */ function initCarousel(force = false) { const $owl = $(ROOT_SELECTOR + " .standards-container"); // no inicializar si no existe, está oculto o no tiene items if (!$owl.length || !$owl.hasClass("owl-carousel") || !$owl.is(':visible') || $owl.children().length === 0) { log("initCarousel abortado: no visible o sin items", $owl); return; } if (force && $owl.hasClass("owl-loaded") && $owl.data("owl.carousel")) { log("initCarousel Destruyendo Owl Carousel existent:", $owl); $owl.trigger('destroy.owl.carousel'); // limpiar también owl-hidden para permitir reinicialización $owl.removeClass('owl-loaded owl-hidden'); // limpiar markup de Owl $owl.find('.owl-stage-outer').children().unwrap(); } if ($owl.length && !$owl.hasClass("owl-loaded") && !$owl.data("owl.carousel")) { $owl.owlCarousel({ nav: true, navText: [ ' ', '
' ], loop: false, dots: false, pagination: false, margin: 25, autoHeight: false, responsive: { 0: { items: 1 }, 500: { items: 1 }, 767: { items: 2 }, 1000: { items: 3 }, 1200: { items: 4 } } }); $owl.off("initialized.owl.carousel refreshed.owl.carousel resized.owl.carousel translated.owl.carousel") .on("initialized.owl.carousel refreshed.owl.carousel resized.owl.carousel translated.owl.carousel", adjustHeights); log("initCarousel executed"); } } /* === initCard — PÚBLICA === */ function initCard($card) { const dataNode = $card.find("script.normas-data")[0]; let data = []; if (dataNode) { try { data = JSON.parse(dataNode.textContent); } catch {} } const hasData = Array.isArray(data) && data.length > 0; let langMap = {}; const mapNode = $card.find("script.lang-map")[0]; try { if (mapNode) langMap = JSON.parse(mapNode.textContent); } catch {} const $lang = $card.find(".select-language"); const $fmt = $card.find(".select-format"); const $price = $card.find(".price-ae"); const toUC = s => (s || "").toString().toUpperCase(); const labelOf = lang => langMap[toUC(lang)] || lang; const formatsFor = lang => _uniq(data.filter(d => d.language === lang).map(d => d.format)); const languagesFor = fmt => _uniq(data.filter(d => d.format === fmt).map(d => d.language)); const priceOf = (lang, fmt) => { const m = data.find(d => d.language === lang && d.format === fmt); return m ? Number(m.price) || 0 : 0; }; const parsePriceText = (text) => { if (!text) return 0; const clean = String(text).replace(/[^\d,.-]/g, "").trim(); if (!clean) return 0; if (clean.includes(",") && clean.includes(".")) { const normalized = clean.replace(/\./g, "").replace(",", "."); return Number(normalized) || 0; } const normalized = clean.replace(",", "."); return Number(normalized) || 0; }; if (hasData) { function onLanguageChange() { const lang = $lang.val(); const fmts = formatsFor(lang); _fill($fmt, fmts); $price.text(_euros(priceOf(lang, $fmt.val()))); } function onFormatChange() { const fmt = $fmt.val(); const langs = languagesFor(fmt); _fill($lang, langs, labelOf); $price.text(_euros(priceOf($lang.val(), fmt))); } const l0 = $lang.val(); const f0 = $fmt.val(); if (!data.find(d => d.language === l0 && d.format === f0)) onLanguageChange(); else $price.text(_euros(priceOf(l0, f0))); _relabel($lang, labelOf); $lang.off("change.ae").on("change.ae", onLanguageChange); $fmt.off("change.ae").on("change.ae", onFormatChange); } async function onAdd(e) { e.preventDefault(); var entryType = ($card.data('entrytype') || 'Norma'); var code = ($card.data('code') || '').toString(); var codIdioma = ($card.find('.select-language').val() || '').toString(); var codFormato = ($card.find('.select-format').val() || '').toString(); if (!code) code = ($card.find('.title-standard').text() || '').trim(); await window.ecomGlobalScripts.functions.addToCart({ entryType: entryType, code: code, codIdioma: codIdioma, codFormato: codFormato, price: Number(priceOf(codIdioma, codFormato)) || 0, name: ($card.data('title') || '').toString(), amount: 1 }); } $card.find(".standard-button").off("click.ae").on("click.ae", function(e){ const btn = this; const run = () => onAdd(e); const helper = window.ecomGlobalScripts?.functions?.withButtonSpinner; if (typeof helper === "function") { return helper(btn, run, { spinnerClass: "spinner-border spinner-border-sm text-light", mode: "replace" }); } return run(); }); // Evita que Owl Carousel interprete el click como drag horizontal $card.find(".standard-button") .off("pointerdown.owl mousedown.owl touchstart.owl") .on("pointerdown.owl mousedown.owl touchstart.owl", function(e){ e.stopPropagation(); }); } /* === adjustHeights — PÚBLICA === */ function adjustHeights() { if ($(window).width() > 766.98) { let hT = 0, hD = 0; $(ROOT_SELECTOR + " .title-standard").css("height","auto").each(function(){ hT=Math.max(hT,$(this).outerHeight()); }); $(ROOT_SELECTOR + " .description-text").css("height","auto").each(function(){ hD=Math.max(hD,$(this).outerHeight()); }); $(ROOT_SELECTOR + " .title-standard").height(hT); $(ROOT_SELECTOR + " .description-text").height(hD); } else { $(ROOT_SELECTOR + " .title-standard, .description-text").css("height","auto"); } log("adjustHeights executed"); } /* === init — PÚBLICA === */ async function init() { // debug externo DEBUG = window.ecomNormaScripts?.properties?.isDebug === true; // prefijo para todos los selectores ROOT_SELECTOR = window.ecomGlobalScripts?.properties?.querySelectors?.rootSelector || window.ecomNormaScripts?.properties?.querySelectors?.rootSelector || "#ecom-norma-detail-normas-referenced .standards-section"; log("window.ecomNormaReferencedScript init"); $(ROOT_SELECTOR + " .item-standard").each(function(){ initCard($(this)); }); initCarousel(true); adjustHeights(); $(window).off("resize.standards").on("resize.standards", adjustHeights); log("init executed"); } /* === API pública === */ return { init, initCard, adjustHeights, initCarousel }; })(jQuery);
Fecha edición: 2004-09-30
En Vigor
Idiomas disponibles: Francés, Inglés
ICS: 25.140.30 - Herramientas manuales portátiles
CTN: 47562

Anulaciones Normas

Anula a ISO 9656:1989

El libro en palabras del autor

Ultricies magna feugiat malesuada sociosqu varius vivamus cubilia parturient, himenaeos vitae vehicula nam placerat netus urna platea, nostra rutrum felis mattis penatibus velit quisque.

Button
Preguntas frecuentes ¿Tienes alguna duda sobre nuestros productos?

Respuesta 2

Desde la web

Libros y normas