Jag har ett javascript som aktiverar en länk när man klickar på en annan länk. Efter att ha testat lite lokalt på datorn, så har jag upptäckt att IE automatiskt blockerar scriptet. Ingen som har koll på detta? Har du möjlighet att använda dig av jQuery? det finns en bugg i IE som gör att innerHTML ibland inte fungerar, har jag märkt och det finns omvägar. Kör på .attr i jquery istället http://forum.jquery.com/topic/jquery-attr-href-giving-full-path-instead-of-relative-in-ieProblem med Javascript i IE
Scriptet ser ut så här:
<code>
<script language="javascript">
function activateLink(obj){
myDiv=document.getElementById(obj);
myDiv.innerHTML=''+myDiv.innerHTML+'';
}
</script>
<p>
<div id=link1 style="font-family: impact; font-size: 28px;" value="http://download.php?id=49">Ladda Ner</div></p>
</code>
Av någon anledning så vill inte länken aktiveras i IE.
Någon som har koll på varför?Sv: Problem med Javascript i IE
Någon som har koll på hur man komma runt det?Sv:Problem med Javascript i IE
Det verkar som att folk inte alls kan få scriptet att funka.
För exempel, kolla här:
http://www.designadinblogg.se/gratisdesign/?p=659
Klicka på annonsen en bit ner (Ahabingo.com) så skall länken Ladda Ner aktiveras.
För mig funkar det, men för många andra vill det inte funka.Sv: Problem med Javascript i IE
I så fall så fick jag detta exempel att fungera utan problem i IE9, FF 5 och Chrome 13. Självklart var jag tvungen att ersätta lite URL'er osv. Men annars är det väldigt likt den kod du visar.
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
function activateLink(obj) {
var myDiv = $("#" + obj);
var url = $(myDiv).attr("value");
var text = $(myDiv).text();
var link = '' + text + '';
$(myDiv).html(link);
}
</script>
<p>
<div id="link1" style="font-family: impact; font-size: 28px;" value="http://www.pellesoft.se">Ladda Ner</div>
</p>
Sv: Problem med Javascript i IE
Gäller även jQuerys .html metod som använder sig av innerHTML i IE
[code]
function setElementHTMLById( id, html ){
try {
var elm = document.getElementById(id);
if (elm.firstChild)
elm.removeChild(elm.firstChild);
elm.appendChild( document.createTextNode(html) );
}
catch( Er ){
return false;
}
return elm.innerHTML;
}
[/code]
Anropas med
[code]
setElementHTMLById("elementets_ID","innehållet som ska in");
[/code]Sv:Problem med Javascript i IE