jasifilMedlem sedan okt. 200932 inlägg Jag hittade ett javascript på nätet som jag använder på vissa av länkarna på min hemsida. Eftersom jag kodat sidan enligt xhtml-strict så är attributet "target" inte längre gångbart. Istället använder jag "rel". Se exempel.
<a href="document.html" rel="external">external link</a>
Själva scriptet ser ut så här:
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;
Scriptet har jag sparat under filnamnet external.js.
Min fråga är om jag i detta script kan lägga till så att länken öppnas i ett separat fönster med en specifik placering, t.ex. om det är möjligt att även baka in följande i filen external.js?
<script language="JavaScript">
function openPage(imagePath, width, height) {
var settingsString = 'toolbar=no,resizable=no,scrollbars=no,width=' + width + ',height=' + height;
window.open(imagePath, 'Sida', settingsString);
}
</script>
Hoppas ni förstår hur jag menar.
Tack på förhand!
/Janne
Varför ska du göra det? Ditt "extra script" ovan öppnar ju redan ett nytt fönster. På dom ställen du ska använda det, så skippar du rel="external" och istället kör du:
<a href="#" onclick="openPage('image.jpg', 400, 400); return false;">LÄNK</a>
/r
Jaha, du vill endast ha in raden settingsString?
Blir nog svårt, jag tror att window.open() skiljer sig från hur en vanlig länk triggas.
Det du kan göra är att använda funktionen window.open() på alla länkar isf. för rel attributet.
Eller efter if frågan
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
så gör du att den kör funktionen openPage, men jag vet inte riktigt vilka standard mått du är ute efter på höjd och bredd så det är lite svårt att veta hur du hade tänkt att lösa det, statiskt eller dynamiskt?
ananrs om det är 400x400:
function externalLinks() {
if (!document.getElementsByTagName) {
return;
}
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
openPage(anchor.getAttribute("href"), 400, 400);
}
}
}
window.onload = externalLinks;
jasifilMedlem sedan okt. 200932 inlägg Hej!
Tack för era svar. Får det inte att funka dock. Man får väl vara nöjd som det är men min tanke var att om fönstret öppnas utanför själva webbläsaren och dessutom placeras lite förskjutet så märker man ju mycket tydligare att länken öppnats i nytt fönster. Som det är med mitt rel-attribut så öppnas ju bara en ny flik vilket man knappt märker. Åtminstone inte innan man ska backa tillbaka vilket inte går. Lätt att bli irriterad.