Die Inhaltsanalyse zeigt, ob Seitentitel, Beschreibungen, Überschriften, Bilder und Textstruktur Suchmaschinen und Besuchern klare Signale geben.
Seitentitel
RAUH Hydraulik - RAUH Hydraulik
Länge : 31
Der Seitentitel von hydraulik.de ist mit 31 Zeichen gut dimensioniert und liegt im empfohlenen Bereich von 10 bis 70 Zeichen. Damit bekommen Suchmaschinen und Besucher schon in der Ergebnisliste einen klaren ersten Hinweis auf den Inhalt.
Seitenbeschreibung
RAUH Hydraulik
Länge : 14
Bei hydraulik.de ist die Seitenbeschreibung vorhanden, aber mit 14 Zeichen nicht optimal abgestimmt. Empfehlenswert sind 70 bis 160 Zeichen, damit die Vorschau weder zu knapp noch unnötig lang wirkt. Zur Längenprüfung können Sie dieses kostenlose Werkzeug nutzen.
Suchbegriffe
hydraulik.de nutzt keine META-Suchbegriffe. Der wichtigste SEO-Faktor bleibt der sichtbare Inhalt, aber ergänzende Keywords können bei der Pflege und Dokumentation der Seite hilfreich sein. Bei Bedarf können Sie dieses kostenlose Werkzeug verwenden.
Og META Eigenschaften
Für hydraulik.de wurden keine OG Properties erkannt. Eigene Open-Graph-Daten helfen, Titel, Beschreibung und Bild beim Teilen der Seite besser zu steuern. Mit diesem kostenlosen Werkzeug lassen sich passende OG-Angaben erstellen.
Überschriften
H1
H2
H3
H4
H5
H6
3
4
18
10
0
0
[H1] Ihr Systempartner
[H1] Produkte
[H1] Rauh - Wir können Hydraulik!
[H2] Kaum eine Industriebranche ohne Hydraulik Komponenten
[H2] Ein System ist mehr als die Summe seiner Einzelteile - ein durchdachtes Ganzes
[H2] \n \n {{shortText}}\n \n\n \n {{itemNumberLabel}}: {{itemNumber}}\n \n \n \n \n \n \n {{#recommendedPrice}}\n {{recommendedPrice}}\n {{\/recommendedPrice}}\n\n \n {{effectivePrice}}\n\n {{#effectivePriceSuffix}}\n {{effectivePriceSuffix}}\n {{\/effectivePriceSuffix}}\n \n\n {{#secondaryPrice}}\n \n {{secondaryPrice}}\n {{secondaryPriceSuffix}}\n \n {{\/secondaryPrice}}\n\n \n {{priceQuantityLabel}} {{priceQuantity}}\n \n \n \n \n \n\n\n';
var VARIANT_FEATURES_TEMPLATE = '{{title}}\n\n{{#hasFeatures}}\n\n {{#features}}\n \n \n {{feature}}\n \n \n {{value}} {{unit}}\n \n \n {{\/features}}\n\n{{\/hasFeatures}}\n\n{{^hasFeatures}}\n {{noCommonFeatures}}\n{{\/hasFeatures}}';
function loadItemText() {
var overwriteLongtext = true;
var $longtext = $("#output-longtext");
if (overwriteLongtext || $longtext.length === 0 || isEmpty($longtext.html().trim())) {
loadOxomiItemText();
}
}
function load3dViewer() {
var shouldDisplay3dViewer = false;
if (shouldDisplay3dViewer) {
loadOxomiItem3dModel();
}
}
/**
* Increments the item quantity by a certain amount
*
* Uses toFixed to round the result to the right number of decimals to prevent errors due to floating point
* arithmetic.
*
* @param id the ID of the input field to increment
* @param orderStep the amount to increment
*/
function incrementItemQuantity(id, orderStep) {
var $input = $('#' + id);
var result = parseFloat((parseFloat($input.val()) + orderStep).toFixed(3));
$input.val(result);
}
/**
* Decrements the item quantity by a certain amount
*
* Uses toFixed to round the result to the right number of decimals to prevent errors due to floating point
* arithmetic.
*
* @param id the ID of the input field to decrement
* @param orderStep the amount to decrement
* @param minOrderQuantity the minimum order quantity
*/
function decrementItemQuantity(id, orderStep, minOrderQuantity) {
var $input = $('#' + id);
var result = parseFloat((parseFloat($input.val()) - orderStep).toFixed(3));
if (result < minOrderQuantity) {
$input.val(minOrderQuantity);
} else {
$input.val(result);
}
}
var IMAGE_OVERLAY_TEMPLATE = '' +
' ' +
' ' +
' {{#images}}' +
' ' +
' ' +
' ' +
' ' +
' ' +
' {{/images}}' +
' ' +
' ' +
' ' +
' ' +
' ' +
'';
function createImageOverlay($container) {
// Event handler that opens the item image overlay and displays the clicked image
var showArrows = true;
var fadeIn = false;
$container.on('click', 'a', function (e) {
e.preventDefault();
var currentUrl = $(this).attr('href');
var currentIndex = 0;
var images = [];
// Find all item images and the index of the one that was clicked
$container.find('.item-image-js').filter(function (index, element) {
return !$(element).parent().hasClass('slick-cloned');
}).each(function (index, element) {
var url = $(element).attr('href');
images.push(url);
if (url === currentUrl) {
currentIndex = index;
}
});
if (images.length === 0) {
return;
}
// Generate and add the overlay to the DOM
var $overlay = $(Mustache.render(IMAGE_OVERLAY_TEMPLATE, {'images': images}));
var $slider = $overlay.find('.image-overlay-images-js');
$('body').addClass('image-overlay-open').append($overlay);
if (fadeIn) {
$overlay.hide().fadeIn();
}
// Generate the slider
$slider.slick({
slidesToShow: 1,
dots: true,
arrows: showArrows,
initialSlide: currentIndex
});
// Event handler for pressing escape, left/right arrow keys
var keydownHandler = function (e) {
if (e.keyCode === 27) {
closeOverlay();
} else if (e.keyCode === 37) {
$slider.slick('slickPrev');
} else if (e.keyCode === 39) {
$slider.slick('slickNext');
}
};
// Function that closes the overlay and removes the escape key event handler
var closeOverlay = function (e) {
$('body').removeClass('image-overlay-open');
$overlay.remove();
$(document).off('keydown', keydownHandler);
};
// Click on the close button closes the overlay
$overlay.find('.image-overlay-close').click(function (e) {
e.preventDefault();
closeOverlay();
});
// Click on the background closes the overlay
$overlay.click(function (e) {
if (e.target !== this) {
return;
}
closeOverlay();
});
// Event handler for keyboard inputs
$(document).on('keydown', keydownHandler);
});
}
var AUTOCOMPLETE_SUGGESTION_TEMPLATE =
'' +
' {{label}}' +
' {{#showAddressLabelBox}}' +
' ' +
' {{addressLabel}}' +
' ' +
' {{/showAddressLabelBox}}' +
' {{#hasDescription}}' +
' ' +
' {{#descriptionLines}}' +
' {{.}}' +
' {{/descriptionLines}}' +
' ' +
' {{/hasDescription}}' +
'';
function enableAutocomplete(field) {
function createSubmitData(key, value) {
var data = {};
var fieldData = field.data();
for(f in fieldData) {
if (fieldData.hasOwnProperty(f)) {
if (f != 'autocomplete'
&& f != 'optional'
&& f != 'select2')
{
data[f] = fieldData[f];
}
}
}
data[key] = value;
return data;
}
if (field.data('optional') && field.is(":empty")) {
field.prepend('');
}
field.on('select2:open', function (e) {
$('.select2-search__field').each(function(e) {
var search = $(this);
if (search.parent().hasClass('select2-search--inline')) {
// Don't add placeholder and graphic to inline search fields
return;
}
var placeholder = field.attr('data-searchtext');
if (typeof placeholder === 'undefined' || placeholder === '') {
placeholder = 'Geben Sie einen Suchtext ein…';
}
search.attr('placeholder', placeholder);
});
});
field.on('select2:unselect', function(e) {
$(this).html('');
e.preventDefault();
e.stopPropagation();
});
field.select2({
allowClear: field.data('optional'),
placeholder: field.data('placeholder') || 'Ihre Auswahl…',
dropdownParent: field.parent(),
minimumInputLength: 0,
tags: field.data('dynamic-option'),
templateResult: function (result) {
if (!result) {
return undefined;
}
var hasDescription = result.completionDescription && result.completionDescription !== '';
if (field.attr('data-multiline')) {
var jsonAddress = getAddressAsJson(result.value);
return $(Mustache.render(AUTOCOMPLETE_SUGGESTION_TEMPLATE, {
'label': result.fieldLabel,
'hasDescription' : hasDescription,
'descriptionLines': hasDescription ? result.completionDescription.split('\n') : null,
'showAddressLabelBox': jsonAddress.isErpAddress && jsonAddress.addressLabel,
'addressLabel': jsonAddress.addressLabel,
'addressLabelStyle': jsonAddress.addressLabelStyle
}));
}
return hasDescription ? result.completionDescription : result.completionLabel;
},
language : {
loadingMore: function() {
return 'Lade Daten…';
},
searching: function () {
return 'Suche…';
},
noResults: function () {
return 'Keine Suchtreffer…';
}
},
ajax: {
url: '/' + field.data('autocomplete'),
dataType: 'jsonp',
quietMillis: 100,
data: function(term, page) {
return createSubmitData('query', term.term);
},
processResults: function (data, page) {
return { results: data.completions, more: false };
}
}
});
}
function getAddressAsJson(addressAsJson){
try {
return JSON.parse(addressAsJson);
} catch(e) {
return {};
}
}
$(document).ready(function() {
$('select[data-autocomplete]').each(function(e) {
var field = $(this);
enableAutocomplete(field);
});
$('.select2-select').each(function(e) {
var field = $(this);
if (field.data('optional')) {
field.prepend('');
}
field.select2({
allowClear: field.data('optional'),
placeholder: field.data('placeholder') || 'Ihre Auswahl…',
dropdownParent: field.parent(),
minimumResultsForSearch: 10,
width : '100%',
language : {
maximumSelected: function(args) {
return 'Sie können maximal ' + args.maximum + ' Elemente auswählen';
},
searching: function () {
return 'Suche…';
},
noResults: function () {
return 'Keine Suchtreffer…';
}
},
escapeMarkup: function(m) {
// Do not escape HTML in the select options text
return m;
}
});
});
});
/**
* Retrieves Information about known items from shop for Infoplay.
*/
function infoplayItemLookup(infoplayData, next) {
fillSelection(infoplayData);
if (infoplayData.isSelectedAlternative) {
$.getJSON(
'/items/api/infos',
{
uniqueItemNumber: infoplayData.uniqueItemNumber,
checkCanAddToBasket: false
},
function (json) {
infoplayData.items.push(renderInfoplayItem(json.item, infoplayData));
next(infoplayData);
}
).fail(function (call) {
oxomi.showMessageInDialog("Fehler", call.responseJSON.message);
});
} else {
$.getJSON(
'/items/api/infoplay',
{
query: infoplayData.itemNumber,
supplierNumber: infoplayData.supplierNumber,
supplierNumbers: infoplayData.supplierNumbers !== undefined ? infoplayData.supplierNumbers.join() : '',
gtin: infoplayData.gtin
},
function (json) {
for (i = 0; i < json.items.length; i++) {
infoplayData.items.push(renderInfoplayItem(json.items[i], infoplayData));
}
next(infoplayData);
}
).fail(function (call) {
oxomi.showMessageInDialog("Fehler", call.responseJSON.message);
});
}
}
/**
* Retrives Information about known items from shop for Navigator Pro.
*/
function infoplayProductLookup(infoplayData, next) {
fillSelection(infoplayData);
$.getJSON(
'/items/api/infoplay',
{
query: infoplayData.product.oxomi.itemNumber,
supplierNumber: infoplayData.product.oxomi.supplierNumber,
supplierNumbers: infoplayData.product.oxomi.supplierNumbers,
gtin: infoplayData.product.oxomi.gtin,
navProMode: true,
context: infoplayData.context
},
function (json) {
if (json.items.length > 0) {
var item = json.items[0];
infoplayData.product.label = 'Preis & Verfügbarkeit';
infoplayData.product.availability = {
label: 'Verfügbarkeit',
}
if (item.stockType == 'IN_STOCK') {
infoplayData.product.availability.statusColor = 'green';
} else if (item.stockType == 'LOW_STOCK' || item.stockType == 'REORDERED') {
infoplayData.product.availability.statusColor = 'yellow';
} else if (item.stockType == 'UNKNOWN') {
infoplayData.product.availability.statusColor = 'grey';
} else if (item.stockType == 'OUT_OF_STOCK' || item.stockType == 'MADE_TO_ORDER' || item.stockType == 'NO_LONGER_AVAILABLE' || item.stockType == 'ORDER_ITEM') {
infoplayData.product.availability.statusColor = 'red';
}
if (infoplayData.context == 'datasheet' || infoplayData.context == 'product-overview') {
infoplayData.product.availability.text = item.stockText
}
if (item.priceQuantity !== undefined) {
infoplayData.product.quantity = {
prefix: 'je',
amount: item.priceQuantity
}
}
if (item.isOrderable) {
infoplayData.product.order = {
label: 'Bestellen',
quantity: item.minOrderQuantity_value,
quantityUnitPrefix: 'Menge',
quantityUnit: item.quantityUnit,
unitUnRec20: item.unitUnRec20,
supplierName: item.supplierName,
supplierItemNumber: item.supplierItemNumber,
recommendedOrderQuantity: item.recommendedOrderQuantity,
minOrderQuantity: item.minOrderQuantityAmount,
orderStep: item.orderStep_value,
}
}
if (item.hasEffectivePrice) {
infoplayData.product.price = {
label: 'Preis',
amount: item.effectivePrice
}
}
if (item.showSecondaryPrice) {
infoplayData.product.alternativePrice = {
prefix: item.secondaryPriceSuffix,
amount: item.secondaryPrice
}
}
infoplayData.product.sellsite = {
uniqueItemNumber: item.uniqueItemNumber
}
if (item.shortText) {
infoplayData.product.shortText = item.shortText
}
if (item.itemNumber) {
infoplayData.product.itemNumber = item.itemNumber
}
next(infoplayData);
}
}
).fail(function (call) {
oxomi.showMessageInDialog("Fehler", call.responseJSON.message);
});
}
function infoplayBuzz(message) {
$.getJSON(
'/items/api/infoplay',
{
query: message.payload().itemNumber,
supplierNumber: message.payload().supplierNumber,
supplierNumbers: message.payload().supplierNumbers,
gtin: message.payload().gtin,
navProMode: true,
},
function (json) {
if (json.items.length > 0) {
const item = json.items[0];
const result = {
itemNumber: item.itemNumber,
gtin: item.gtin,
model: item.model,
shortText: item.shortText,
previewImageUrl: item.previewImageUrl,
brand: {
name: item.brandName,
imageUrl: item.brandImageUrl
},
// Enhance result to enable unique resolution at add to basket
uniqueItemNumber: item.uniqueItemNumber,
};
if (item.hasEffectivePrice) {
result.price = {
prefix: item.effectivePriceSuffix,
amount: item.effectivePrice
}
}
if (item.priceQuantity !== undefined) {
result.priceQuantity = "je " + item.priceQuantity;
}
if (item.showSecondaryPrice) {
result.alternativePrice = {
prefix: item.secondaryPriceSuffix,
amount: item.secondaryPrice
}
}
var mappedStockType;
if (item.stockType == 'IN_STOCK') {
mappedStockType = "full";
} else if (item.stockType == 'LOW_STOCK' || item.stockType == 'REORDERED') {
mappedStockType = "low";
} else if (item.stockType == 'UNKNOWN') {
mappedStockType = "unknown";
} else {
mappedStockType = "out_of_stock";
}
result.availability = {
state: mappedStockType,
fromSupplier: item.stockExternal,
text: item.stockText,
}
if (item.isOrderable) {
result.order = {
quantity: item.minOrderQuantity_value,
unit: item.quantityUnit
}
result.unitUnRec20 = item.unitUnRec20
result.supplierName = item.supplierName;
result.supplierItemNumber = item.supplierItemNumber;
result.recommendedOrderQuantity = item.recommendedOrderQuantity;
result.minOrderQuantity = item.minOrderQuantityAmount;
result.orderStep = item.orderStep_value;
}
message.reply(result);
}
}
).fail(function (call) {
oxomi.showMessageInDialog("Fehler", call.responseJSON.message);
});
}
function addToBasketBuzz(message) {
const product = message.payload().product;
const machineQuantity = product.order.quantity.replace(/\./g, '').replace(',', '.');
if (externalLink && externalLink.canAddItemsToBasket) {
const item = {
itemNumber: product.itemNumber,
shortText: product.shortText,
supplierName: product.supplierName,
supplierNumber: product.supplierNumber,
supplierItemNumber: product.supplierItemNumber,
unitName: product.order.unit,
unitUnRec20: product.unitUnRec20,
recommendedOrderQuantity: product.recommendedOrderQuantity,
minOrderQuantity: product.minOrderQuantity,
orderStep: product.orderStep,
};
externalLink.addItemToBasket(item, machineQuantity);
} else {
const asInfoplayData = {
product: {
sellsite: {
uniqueItemNumber: product.uniqueItemNumber
},
oxomi: {
supplierNumber: product.supplierNumber,
itemNumber: product.itemNumber,
gtin: product.gtin
},
order: {
quantity: machineQuantity
}
}
};
infoplayProductBasket(asInfoplayData);
}
}
/**
* Generates an item object for Infoplay.
*/
function renderInfoplayItem(item, infoplayData) {
var newItem = {
itemNumber: item.itemNumber,
uniqueItemNumber: item.uniqueItemNumber,
itemUrl: '/item/' + item.uniqueItemNumber,
supplierName: item.brandName,
shortText: item.shortText,
previewImageUrl: item.previewImageUrl,
quantity: item.minOrderQuantityUser,
reresolve: true,
supplierNumber: item.supplierNumber,
supplierItemNumber: item.supplierItemNumber,
unitName: item.quantityUnitName,
unitUnRec20: item.unitUnRec20,
recommendedOrderQuantity: item.recommendedOrderQuantity,
minOrderQuantity: item.minOrderQuantity,
minOrderQuantityAmount: item.minOrderQuantityAmount,
orderStep: item.orderStep,
orderStepFloat: parseFloat(item.orderStep_value),
features: []
};
var priceString = item.effectivePrice;
if (item.hasEffectivePrice) {
priceString = priceString + " " + item.effectivePriceSuffix;
}
var availability = item.stockText;
if (item.additionalStockText) {
availability = availability + "" + item.additionalStockText;
}
newItem.features.push({
fields: [
{name: item.effectivePriceName, value: priceString},
{name: 'Preismenge', value: item.priceQuantity},
{name: 'Min. Bestellmenge', value: item.minOrderQuantity},
{name: 'Bestellschritt', value: item.orderStep},
{name: 'Verfügbarkeit', value: availability, span: true}
]
});
return newItem;
}
/**
* Basket handler for known items in shop via Infoplay.
*/
function infoplayBasket(infoplayData, next) {
var machineQuantity = infoplayData.quantity.replace(/\./g, '').replace(',', '.');
if (externalLink && externalLink.canAddItemsToBasket) {
const item = {
itemNumber: infoplayData.item.itemNumber,
shortText: infoplayData.item.shortText,
supplierName: infoplayData.item.supplierName,
supplierNumber: infoplayData.item.supplierNumber,
supplierItemNumber: infoplayData.item.supplierItemNumber,
unitName: infoplayData.item.quantityUnitName,
unitUnRec20: infoplayData.item.unitUnRec20,
recommendedOrderQuantity: infoplayData.item.recommendedOrderQuantity,
minOrderQuantity: infoplayData.item.minOrderQuantityAmount,
orderStep: infoplayData.item.orderStepFloat,
};
externalLink.addItemToBasket(item, machineQuantity);
next(infoplayData);
} else {
addItemToBasket(infoplayData.item.uniqueItemNumber, machineQuantity, false, false, "oxomi-infoplay")
.then(function (response) {
return infoplaySuccessMessage(response, infoplayData, next);
})
.then(refreshBasketInfo)
.catch(function (response) {
return infoplayErrorMessage(response, infoplayData, next);
});
}
}
/**
* Basket handler for known products in shop via Navigator Pro.
*/
function infoplayProductBasket(infoplayData) {
if (externalLink && externalLink.canAddItemsToBasket) {
const item = {
itemNumber: infoplayData.itemNumber,
shortText: infoplayData.shortText,
supplierName: infoplayData.product.order.supplierName,
supplierNumber: infoplayData.product.oxomi.supplierNumber,
supplierItemNumber: infoplayData.product.order.supplierItemNumber,
unitName: infoplayData.product.order.quantityUnit,
unitUnRec20: infoplayData.product.order.unitUnRec20,
recommendedOrderQuantity: infoplayData.product.order.recommendedOrderQuantity,
minOrderQuantity: infoplayData.product.order.minOrderQuantity,
orderStep: infoplayData.product.order.orderStep,
};
externalLink.addItemToBasket(item, infoplayData.product.order.quantity);
} else {
if (sirius.isFilled(infoplayData.product.sellsite.uniqueItemNumber)) {
addItemToBasket(infoplayData.product.sellsite.uniqueItemNumber, infoplayData.product.order.quantity, false, false, "oxomi-infoplay-navpro")
.then(function (response) {
addSuccessMessage('Ihr Warenkorb wurde aktualisiert: ' + response.basketInfo);
return response;
})
.then(refreshBasketInfo)
.catch(function (response) {
addErrorMessage(response.message);
});
} else {
var supplierItem = {
supplier: infoplayData.product.oxomi.supplierNumber,
supplierItemNumber: infoplayData.product.oxomi.itemNumber,
quantity: infoplayData.product.order.quantity,
externalUrl: generateOxomiUrl(infoplayData),
comment: generateCatalogComment(infoplayData),
}
addExternallySuppliedItemToBasket(supplierItem, "oxomi")
.then(function (response) {
addSuccessMessage('Ihr Warenkorb wurde aktualisiert: ' + response.basketInfo);
return response;
})
.then(refreshBasketInfo)
.catch(function (response) {
addErrorMessage(response.message);
});
}
}
}
/**
* Safely fills in custom attribute selection in infoplayData
* which is needed for div items.
*/
function fillSelection(infoplayData) {
if (!infoplayData.selection) {
infoplayData.selection = infoplayData.itemNumber;
}
}
/**
* Function to show success message for Infoplay add to basket
*/
function infoplaySuccessMessage(response, infoplayData, next) {
infoplayData.basketMessage = 'Ihr Warenkorb wurde aktualisiert: ' + response.basketInfo;
next(infoplayData);
return response;
}
/**
* Function to show error message for Infoplay add to basket
*/
function infoplayErrorMessage(response, infoplayData, next) {
infoplayData.basketMessage = response.message;
next(infoplayData);
return response;
}
/**
* Injects link into Infoplay dialog to request div item.
*/
function enhanceExternalInfoplay(infoplayData, infoplayExternalLookup, processInfoplayItemResult) {
var addDivItemCallback = function (infoplayDataFilled) {
fillSelection(infoplayDataFilled);
for (i = 0; i < infoplayDataFilled.items.length; i++) {
infoplayDataFilled.items[i].features = [linkForDivItem(infoplayDataFilled)];
}
processInfoplayItemResult(infoplayDataFilled);
};
infoplayExternalLookup(infoplayData, addDivItemCallback);
}
/**
* Handler for adding div items to basket via Infoplay.
*/
function infoplayExternalBasket(infoplayData, next) {
var supplierItem = {
supplier: infoplayData.item.supplierName,
supplierNumber: infoplayData.supplierNumbers !== undefined ? infoplayData.supplierNumbers.join() : infoplayData.supplierNumber,
supplierItemNumber: infoplayData.item.itemNumber,
shorttext: infoplayData.item.shortText,
quantity: infoplayData.quantity,
externalUrl: generateOxomiUrl(infoplayData),
comment: generateCatalogComment(infoplayData),
priceQuantity: infoplayData.item.priceQuantity,
unitCode: infoplayData.item.quantityUnit
}
addExternallySuppliedItemToBasket(supplierItem, "oxomi")
.then(function (response) {
return infoplaySuccessMessage(response, infoplayData, next);
})
.then(refreshBasketInfo)
.catch(function (response) {
return infoplayErrorMessage(response, infoplayData, next);
});
}
/**
* Template for custom Infoplay dialog to add div item.
*/
var OXOMI_INFOPLAY_TEMPLATE =
'' +
' ' +
' ' +
' Artikelnummer' +
' ' +
' ' +
' ' +
' Hersteller' +
' ' +
' ' +
' ' +
' ' +
' ' +
' ' +
' ' +
' ' +
' ' +
'';
/**
* Renders custom dialog for div items.
*/
function renderCustomDialog(infoplayData) {
var dialog = $(OXOMI_INFOPLAY_TEMPLATE);
var submitFunction = function () {
infoplayData.quantity = $("#oxomi-quantity").val();
infoplayData.item = {
itemNumber: $("#oxomi-itemNumber").val(),
supplierName: $("#oxomi-supplier").val()
};
infoplayExternalBasket(infoplayData, function (infoplayData) {
oxomi.showMessageInDialog($('#oxomi-dialog-title').text(), infoplayData.basketMessage);
});
};
$('#oxomi-add-to-basket', dialog).click(submitFunction);
$('#oxomi-quantity', dialog).keypress(function (e) {
if (e.which == 13) {
submitFunction();
}
});
$("#oxomi-supplier", dialog).val(infoplayData.brandName);
$("#oxomi-itemNumber", dialog).val(infoplayData.selection);
oxomi.fillDialog('Divers-Artikel erfassen', dialog);
}
/**
* Adds link to request a div item with logic to add the item to basket.
*/
function linkForDivItem(infoplayData) {
return {
title: 'Divers-Artikel',
fields: [{
value: $('Nicht der passende Artikel? Hier Divers-Artikel anfragen').click(function () {
renderCustomDialog(infoplayData);
}),
span: true
}]
};
}
/**
* Template for catalog URL in div item infos.
*/
var OXOMI_CATALOG_URL_TEMPLATE = 'https://oxomi.com/p/57/catalog/{{catalogId}}?page={{pageNum}}&query={{query}}';
/**
* Template for data sheet URL in div item infos.
*/
var OXOMI_DATA_SHEET_URL_TEMPLATE = 'https://oxomi.com/p/57/datasheet/{{supplierNumber}}/{{itemNumber}}';
/**
* Generates the URL for the catalog page / data sheet the item was requested on.
*/
function generateOxomiUrl(infoplayData) {
if (infoplayData.catalogId && infoplayData.pageNum) {
return Mustache.render(OXOMI_CATALOG_URL_TEMPLATE, {
catalogId: infoplayData.catalogId,
pageNum: infoplayData.pageNum,
query: encodeURIComponent(infoplayData.selection)
});
}
if (infoplayData.itemNumber) {
return Mustache.render(OXOMI_DATA_SHEET_URL_TEMPLATE, {
supplierNumber: infoplayData.supplierNumber || '-',
itemNumber: infoplayData.itemNumber,
});
}
return '';
}
/**
* Generates comment for catalog information.
*/
function generateCatalogComment(infoplayData) {
var commentString = "";
if (typeof infoplayData.catalogName != 'undefined') {
commentString = Mustache.render('Aus {{catalogName}} (Seite {{visiblePageNum}}) von {{brandName}}', {
catalogName: infoplayData.catalogName,
visiblePageNum: infoplayData.visiblePageNum,
brandName: infoplayData.brandName
});
}
return commentString;
}
/**
* Renders div item if no item was found in shop and OXOMI.
*/
function infoplayEmptyResult(infoplayData, next) {
fillSelection(infoplayData);
renderCustomDialog(infoplayData);
oxomi.showDialog();
}
/**
* Handler for opening a product detail page from an oxomi story
*/
function openProduct(context) {
jsonRequest('/items/api/infoplay', {
query: context.target,
supplierNumber: context.supplierNumber,
supplierNumbers: context.supplierNumbers,
gtin: context.gtin,
}, true)
.then(function (json) {
if (json.items && (json.items.length === 1 ||
(json.items.length > 1 && json.items.every(function (item) { return item.itemNumber === json.items[0].itemNumber } ))))
{
// Open exact match in shop, or all items have same itemNumber
window.location.href = json.items[0].relativeUrl;
} else if (json.items && json.items.length > 1) {
// Search for possible match in shop
openSearch(context.target, context);
} else {
// No chance to find in shop, show OX datasheet
oxomi.openProductDatasheet({
productId: context.productId,
supplierItemNumber: context.target,
supplierNumber: context.supplierNumber
});
}
})
.catch(function (err) {
openSearch(context.target, context);
});
}
function openSearch(query, searchContext) {
var queryString = (query) ? query : '';
var searchUrl = "/navigator" + "?query=" + encodeURIComponent(queryString);
if (searchContext.supplierNumbers) {
searchContext.supplierNumbers.split(",").forEach(function (supplierNumber) {
searchUrl += "&supplierNumber=" + encodeURIComponent(supplierNumber);
});
}
if (searchContext.classification && false) {
searchUrl += "&class=metaclass|" + encodeURIComponent(searchContext.classification);
}
if (searchContext.series) {
searchUrl += "&property[SERIES]=" + encodeURIComponent(searchContext.series);
}
if (searchContext.brandName) {
jsonRequest('/brands/resolveByName', {brandName: searchContext.brandName}, true)
.then(function (json) {
if (json.brandId) {
searchUrl += "&brand=" + encodeURIComponent(json.brandId);
}
window.location.href = searchUrl;
}
).catch(function (response) {
window.location.href = searchUrl;
});
} else {
window.location.href = searchUrl;
}
}
setTimeout(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://oxomi.com/assets/frontend/oxomi.js"
document.getElementsByTagName("head")[0].appendChild(script);
}, 0);
function registerInfoplayAtBuzz() {
const shop = new buzz.Connector({
name: "SellSite",
link: "oxomi"
});
shop.addCapability("enhanceProductData", function (message) {
infoplayBuzz(message);
});
shop.addCapability("addProductToBasket", function (message) {
addToBasketBuzz(message);
});
}
function initializeOxomi() {
let script = document.createElement('script');
script.src = '/assets/common/common.js';
script.async = true;
document.head.appendChild(script);
registerInfoplayAtBuzz();
var settings = {
server: 'https://oxomi.com',
portal: '57',
infoplayItemLookup: infoplayItemLookup,
infoplayProductLookup: infoplayProductLookup,
infoplayMenuTitle: 'Weitere Informationen...'
};
// Set the interface language
settings.lang = 'de';
settings.buzzLink = "oxomi";
if (false) {
settings.filterLang = 'de';
}
oxomi.init(settings);
}
if (typeof buzz !== 'undefined') {
triggerOxomiInit();
} else {
document.addEventListener("buzz-ready", triggerOxomiInit);
}
function triggerOxomiInit() {
if (typeof oxomi !== 'undefined') {
initializeOxomi();
} else {
document.addEventListener("oxomi-loaded", initializeOxomi);
}
}
function handleStoriesLinks(link, context) {
if (context.action === 'productsearch') {
let query = (context.query) ? context.query : context.target;
openSearch(query, context);
return true;
}
if (context.action === 'product') {
openProduct(context);
return true;
}
return false;
}
document.addEventListener('stories-ready', function () {
window.scireum.stories.addLinkHandler(handleStoriesLinks, 600);
});
/**
* Opens the OXOMI portal and records a page impression event for it.
*/
function openOxomiPortalWithEventRecording() {
oxomi.openPortal();
recordPageImpressionEvent('OXOMI_OPEN_PORTAL');
}
let oxomi_settings = {
server: 'https://oxomi.com',
portal: '57',
accessToken: '',
roles: '',
user: 'sellsite',
hasBasket: false,
disableStoryLinks: false,
infoplayMenuTitle: 'Weitere Informationen...'
};
if (false) {
oxomi_settings.filterLanguage = 'de';
}
// Set the interface language
oxomi_settings.language = 'de';
const decodeEntities = (function() {
// this prevents any overhead from creating the object each time
var element = document.createElement('div');
function decodeHTMLEntities (str) {
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/]*>([\S\s]*?)/gmi, '');
str = str.replace(/ new row of tokens
lastTokenTop = this.getBoundingClientRect().top;
tokensWidth = 0;
}
// + 1 because outerWidth gets the width rounded and else it might not fit because of 1px
tokensWidth += $(this).outerWidth(true) + 1;
});
var additionalElementsWidth = 0;
$container.find(".input-width-js:not(.hide)").each(function () {
// + 1 because outerWidth gets the width rounded and else it might not fit because of 1px
additionalElementsWidth += $(this).outerWidth(true) + 1;
});
var inputWidth = $container.width() - tokensWidth - additionalElementsWidth;
var minWidth = parseInt(input.tokenElement.css('min-width'));
if (minWidth > inputWidth) {
inputWidth = $container.width() - additionalElementsWidth;
}
input.tokenElement.css('max-width', inputWidth);
input.tokenElement.width(inputWidth);
},
resize: function (e) {
input.resizeInputField();
events.onResize.forEach(function (handler) {
handler(e);
});
},
/**
* Shows a small token removal icon in the input field.
*/
showTokenRemoval: function () {
if (input.tokenRemovalElement) {
input.tokenRemovalElement.removeClass("hide");
}
},
/**
* Hides the token removal icon.
*/
hideTokenRemoval: function () {
if (input.tokenRemovalElement) {
input.tokenRemovalElement.addClass("hide");
}
},
hasTokens: function () {
return input.getTokens().length > 0;
},
hasToken: function (token) {
var contains = false;
$.each(input.getTokens(), function (i, element) {
if (element.value === token.value) {
contains = true;
}
});
return contains;
},
getTokens: function () {
return input.element.tokenfield('getTokens');
},
removeToken: function (tokenToRemove) {
var newTokens = input.getTokens().filter(function (token) {
return tokenToRemove.value !== token.value;
});
input.element.tokenfield("setTokens", newTokens);
var event = {attrs: tokenToRemove};
events.onRemovedToken.forEach(function (handler) {
handler(event);
});
},
/**
* Cleares the token field of all entries.
*/
clearTokens: function () {
input.element.tokenfield("setTokens", []);
input.resizeInputField();
events.onClearTokens.forEach(function (handler) {
handler();
});
},
/**
* Hides the token removal icon if there are no tokens left, else the icon is shown.
*/
updateTokenRemovalVisibility: function () {
if (input.hasTokens()) {
input.showTokenRemoval();
} else {
input.hideTokenRemoval();
}
},
};
var events = {
/**
* Handlers are called when user hits the enter key in the input field.
*/
onEnter: [],
/**
* Handlers are called when a token is removed from the tokenfield.
*
* Called with the event object as parameter.
*/
onRemovedToken: [],
onResize: [],
/**
* Handlers are called when all tokens are cleared from the tokenfield.
*
* Called with the event object as parameter.
*/
onClearTokens: [],
/**
* Handlers will be called before the creation of a token.
*
* Called with the token as parameter. The token can be changed inside the handler and this will be carried
* over into the tokefield.
*
* Returning false will prevent the token from being created.
*/
onBeforeCreateToken: [],
/**
* Will be called after tokenfield created a new token.
*/
onCreatedToken: []
};
return {
eventNames: function () {
return Object.keys(events);
},
/**
* Adds event handlers.
*
* @param name of the event
* @param callback the function to be executed if the event is triggered
*/
on: function (name, callback) {
if (this.eventNames().includes(name)) {
events[name].push(asFunction(callback));
} else {
throw "Callback " + name + " is no valid event.";
}
},
/**
* Unbinds one or all event handlers.
*
* @param name of the event
* @param callback the function to unbind, if left empty all handlers are removed
*/
off: function (name, callback) {
if (!this.eventNames().includes(name)) {
throw "Callback " + name + " is no valid event.";
}
if (callback === undefined) {
events[name] = [];
return;
}
var remainingHandlers = events[name].filter(function (value) {
return value !== asFunction(callback);
});
events[name] = remainingHandlers;
},
start: function (config) {
input.init(config);
},
getInput: function () {
return input.getValue();
},
appendTokens: function (tokens) {
input.appendTokens(tokens);
},
addToken: function (token) {
input.addToken(token);
},
getInputFieldId: function () {
return input.tokenElement.prop("id");
},
getInputField: function () {
return input.element;
},
getTokenfieldInputField: function () {
return input.tokenElement;
},
/**
* Checks whether the tokenfield contains any token.
*
* @return true if the tokenfield contains at least one token.
*/
hasTokens: function () {
return input.hasTokens();
},
/**
* Checks whether the tokenfield contains the given token.
*
* Tokens are equal if they have the same value-property.
*
* @param token the given token
* @return true if the token field contains the given token
*/
hasToken: function (token) {
return input.hasToken(token);
},
updateTokenRemovalVisibility: function () {
input.updateTokenRemovalVisibility();
},
hideTokenRemoval: function () {
input.hideTokenRemoval();
},
/**
* Cleares the token field of all entries.
*/
clearTokens: function () {
input.clearTokens();
},
/**
* Removes the token from the tokenfield.
*
* Tokens are equal if they have the same value-property.
*
* @param token the token to remove
*/
removeToken: function (token) {
input.removeToken(token);
},
/**
* Get all tokens in the tokenfield.
*
* @return {*} a list of all tokens in the tokenfield.
*/
getTokens: function () {
return input.getTokens();
},
resize: function () {
input.resize();
},
resizeInputField: function () {
input.resizeInputField();
}
};
};
sirius.tokenfield = sirius.createTokenfield();
×
Sind Sie sicher?
[H2]
[H3] Feiertage Öffnungszeiten
[H3] Technischer Handel
[H3] Produktion
[H3] Dienstleistungen
[H3] Schlauchtechnik
[H3] Verbindungstechnik
[H3] Antriebstechnik
[H3] Seminare
[H3] VR-RUNDGANG
[H3] Tronair
[H3] Niederlassungen
[H3] Rauh Insight
[H3] Mini AKL
[H3] Tronair
[H3] Reorder Button
[H3] Niederlassungen
[H3] Aktuelle Pressmaße
[H3] Neues Design
[H4] RAUH Hydraulik
[H4] Explore
[H4] Service
[H4] Webshop-Hilfe
[H4] Follow
[H4] Menge wählen
[H4] Der Artikel konnte nicht gefunden werden.
[H4] Kein Barcode gefunden
[H4] placeholder
[H4] Shop-Login
Bilder
Es konnten 44 Bilder auf dieser Webseite gefunden werden.
Auf hydraulik.de fehlen bei 23 von 44 Bilddateien ALT-Attribute. Beschreibende Alternativtexte helfen Suchmaschinen und verbessern zugleich die Zugänglichkeit der Seite.
Text/HTML Verhältnis
Anteil : 4%
Das Text-zu-HTML-Verhältnis von hydraulik.de liegt nur bei 4% und damit unter dem empfohlenen Mindestwert von 15%. Mehr eigener, sichtbarer Inhalt würde der Seite helfen, ihr Thema klarer zu vermitteln.
Flash
hydraulik.de verzichtet auf Flash-Inhalte. Dadurch bleibt die Seite technisch zeitgemäßer und für Nutzer wie Suchmaschinen leichter zugänglich.
IFrame
Bei hydraulik.de wurden keine IFrames erkannt. Das reduziert technische Abhängigkeiten und macht die Seite für Analyse, Indexierung und Wartung übersichtlicher.
SEO Links
Eine klare Linkstruktur erleichtert Suchmaschinen das Crawlen, verteilt interne Relevanz und hilft Besuchern, wichtige Inhalte schnell zu finden.
URL Rewrite
Bei hydraulik.de sind nicht alle URLs sauber lesbar. Wenn möglich, sollten technische Parameter durch sprechende Pfade ersetzt werden.
Underscores in the URLs
In den URLs von hydraulik.de wurden keine Unterstriche gefunden. Bindestriche sind für lesbare Webadressen meist die bessere Wahl.
In-page links
We found a total of 55 links including 0 link(s) to files
Die Suchbegriffsauswertung zeigt, welche Themen die Seite tatsächlich vermittelt und ob wichtige Begriffe in Inhalt und Seitenelementen konsistent vorkommen.
Gute Benutzerfreundlichkeit stärkt Vertrauen und erleichtert die Nutzung. Geprüft werden unter anderem URL, Favicon, Sprache und Druckdarstellung.
URL
Domain : hydraulik.de
Länge : 12
Favoriten Icon
Ein Favicon ist für hydraulik.de vorhanden. Das ist ein kleines, aber sichtbares Signal für Markenwirkung und Nutzerorientierung.
Druckeigenschaften
hydraulik.de enthält druckfreundliche CSS-Angaben. Das ist nützlich, wenn Besucher Inhalte speichern, ausdrucken oder weitergeben möchten.
Sprache
Die Spracheinstellung von hydraulik.de ist vorhanden: de. Diese Angabe macht das Dokument für Crawler und assistive Technologien klarer interpretierbar.
Dublin Core
Bei hydraulik.de wurden keine Dublin-Core-Elemente gefunden. Das ist nicht für jede Website zwingend, kann aber bei dokumentenartigen oder redaktionellen Inhalten nützlich sein.
Dokument
Sauberes HTML, eine korrekte Zeichencodierung und moderne Standards verbessern Kompatibilität, Zugänglichkeit und die zuverlässige Verarbeitung der Seite.
Doctype
HTML 5
Verschlüsselung
hydraulik.de sollte einen Zeichensatz deklarieren. Ohne diese Information können Browser Inhalte unter ungünstigen Bedingungen falsch interpretieren. Mit diesem kostenlosen Werkzeug kann die passende Angabe vorbereitet werden.
W3C Validität
Fehler : 0
Warnungen : 0
E-Mail Datenschutz
Auf hydraulik.de wurde mindestens eine E-Mail-Adresse im Klartext gefunden. Solche Angaben können von Bots gesammelt werden. Mit diesem kostenlosen Werkzeug lassen sich Adressen besser schützen.
Veraltetes HTML
Veraltete Tags
Vorkommen
<tt>
3
hydraulik.de enthält deprecated HTML-Markup. Eine Bereinigung kann Wartbarkeit, Validierung und technische Zukunftssicherheit verbessern.
Tipps zur Webseitengeschwindigkeit
Bei hydraulik.de wurden keine verschachtelten Tabellen erkannt. Das ist positiv für sauberes Markup und responsive Gestaltung.
Auf hydraulik.de wurden Inline-CSS-Angaben gefunden. Wenn möglich, sollten diese Regeln in Stylesheets verlagert werden, damit Gestaltung und Inhalt sauberer getrennt sind.
Bei hydraulik.de ist die CSS-Struktur relativ umfangreich: 10 Dateien wurden erkannt. Prüfen Sie, ob ungenutzte oder getrennte Stylesheets zusammengeführt werden können.
hydraulik.de bindet mit 10 JavaScript-Dateien nur eine begrenzte Menge Skripte ein. Das ist eine gute Grundlage für schnelle Ladezeiten.
hydraulik.de nutzt gzip-Komprimierung. Dadurch können HTML, CSS und JavaScript kleiner übertragen werden, was die Ladezeit verbessern kann.
Mobile
Mobile Optimierung ist wichtig, weil viele Besucher Smartphones nutzen. Viewport, Icons und ungeeignete Technologien beeinflussen Darstellung und Bedienbarkeit.
Mobile Optimierung
Apple Icon
META Viewport Tag
Flash Inhalt
Optimierung
Sitemap, robots.txt, Komprimierung und Analysesysteme beeinflussen, wie effizient eine Website gecrawlt, ausgeliefert und gezielt weiterentwickelt werden kann.
XML-Sitemap
Eine XML-Sitemap ist für hydraulik.de vorhanden. Sie unterstützt Crawler dabei, die Seitenstruktur effizienter zu verstehen.
https://rauh-hydraulik.de/sitemap.xml
Robots.txt
http://hydraulik.de/robots.txt
Eine robots.txt ist für hydraulik.de vorhanden. Das ist die richtige Stelle, um Suchmaschinen den Umgang mit bestimmten Bereichen der Website zu erklären.
Analytics
Fehlt
Für hydraulik.de wurde kein Analyse-Tool erkannt. Ohne Webanalyse bleibt schwer nachvollziehbar, wie Besucher die Seite tatsächlich nutzen.
PageSpeed Insights
PageSpeed Insights bewertet Leistung, Barrierefreiheit, bewährte Verfahren und SEO für Desktop und Mobilgeräte und macht technische Bremsen sichtbar.
Gerät
Kategorien
Website-Überprüfung
Website-Überprüfung ist ein kostenloses SEO Werkzeug zur Analyse Ihrer Webseite