Avatar billede henrywood Nybegynder
20. januar 2003 - 00:58 Der er 3 kommentarer

Udtrække metatag description og keywords fra en streng

Hej !

Nogen der kan hjælpe med et lille Javascript der udtrækker description, textbaggrundsfarve, backgroundfarve (for body), samt meta description og keywords ?

Jeg har følgende script:

<script language="javascript">
var des;
var keys;

function getMeta(txt) { // returns an array of meta data
var regMeta = /<meta(.*)>/gi;
var x = 0; arrRet = new Array();
while(regMeta.exec(txt)!=null) {
arrRet[x] = RegExp.lastParen; x++
}
for(x=0;x<arrRet.length;x++) {
if(arrRet[x].indexOf('keywords')>-1) {
var strKeys = getMetaContent(arrRet[0]);
}
if(arrRet[x].indexOf('description')>-1) {
var strDesc = getMetaContent(arrRet[1]);
}
}
keys = strKeys;
des = strDesc;
}

function getMetaContent(txt) {
var regCont = /content="(.*)\"/gi
if(regCont.exec(txt)!=null) {
return RegExp.lastParen;
} else {
return 'undefined';
}
}
//===================================================================
// Public
function attachheadtags(data) {
// Title
regextitle = new RegExp("<title>(.*)<\/title>", "gi")
var tit = regextitle.exec(data);
document.frames['htframe'].document.title = tit[0];

// Background color
regexbc = new RegExp("([^\-]+)body([^\-]+)backgound\-color\:([^\-]+)", "gi")
var bc = regexbc.exec(data);
document.frames['htframe'].document.body.bgColor = bc[2];

// Link color
regexlc = new RegExp("([^\-]+)A.link([^\-]+)color\:([^\-]+)", "gi")
var lc = regexlc.exec(data);
document.frames['htframe'].document.body.link = lc[2];

// Textcolor
regextc = new RegExp("([^\-]+)body([^\-]+)color\:([^\-]+)", "gi")
var tc = regextc.exec(data);
document.frames['htframe'].document.body.text = tc[2];

// Get Meta keywords and description
getMeta(data);
var keywords = keys;
var desc = des;   
var oHead = document.frames['htframe'].document.getElementsByTagName('HEAD')

// Store keywords
var oMetaKeywords = document.frames['htframe'].document.createElement("META");
oMetaKeywords.name = "Keywords";
oMetaKeywords.content = keywords;
oHead(0).appendChild(oMetaKeywords);

// Store Description
var objDescription = document.frames['htframe'].document.createElement("META");
objDescription.name = "Description";
objDescription.content = desc;

oHead(0).appendChild(objDescription);   

Jeg vil derefter attache disse oplysninger til documentet, som findes i dokumentet htframe, men ovenstående virker ikke ?

150 point for hurtigt svar !

På forhånd tak for hjælpen
Avatar billede henrywood Nybegynder
20. januar 2003 - 01:02 #1
htframe er en iframe. Jeg tror det er mine regex der driller...
Avatar billede jeden Nybegynder
26. marts 2003 - 08:53 #2
Hvorfor vil du udtrække dine metatags og keywords fra en tekststreng?

Søgemaskinernes indekseringsprogrammer, Spiders, afvikler ikke kode. De læser kun fysiske filer. Derfor vil dit forsøg med dynamisk generering af metatags have samme effekt over for søgemaskinerne som en side helt uden metatags og keywords.

Dynamisk generering af metatags og keywords foregår oftes ved at have en eller anden form for CMS til at generere hele fysiske filer f.eks. en gang om dagen.
Avatar billede henrywood Nybegynder
02. april 2003 - 22:50 #3
Det er også det, jeg skal bruge det til. Overstående er til klientsiden, som i et CMS tilbyder at generere indholdet af en sådan fil. Har dog selv fixet det, så jeg lukker nu
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester