[JavaScript] Probleem in IE6
Wanneer ik onderstaande code toepas in mijn document, ondervindt ik in FireFox 3 geen probleem maar in IE6 krijg ik de foutmelding "Object wordt verwacht".
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="application/javascript">
function followURL(id, url, title) {
document.getElementById(id).className = 'selected';
window.open(url, title, 'height=600, width=900, channelmode=1');
setTimeout(clearClass(id), 2000);
}
function clearClass(id) {
document.getElementById(id).className = '';
}
</script>
<?PHP
echo '<img src="images/icons/' . $iWidth . '/' . $i . '.gif" alt="icon" onclick="followURL(\'11\', \'index2.php\', \'INDEX 2\'); return false">';
?>
function followURL(id, url, title) {
document.getElementById(id).className = 'selected';
window.open(url, title, 'height=600, width=900, channelmode=1');
setTimeout(clearClass(id), 2000);
}
function clearClass(id) {
document.getElementById(id).className = '';
}
</script>
<?PHP
echo '<img src="images/icons/' . $iWidth . '/' . $i . '.gif" alt="icon" onclick="followURL(\'11\', \'index2.php\', \'INDEX 2\'); return false">';
?>
Met vriendelijke groet,
Jeroen van Doorn
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
In het PHP gedeelte zit geen probleem, het probleem zit zich in het JavaScript gedeelte.
Helaas, ik werk nooit met Javascript. Dus ik kan je verder niet helpen.
setTimeout("clearClass("+id+")", 2000);
Helaas, ik heb het geprobeerd maar dit is niet de oplossing! In FireFox gaat dit allemaal goed, bij de timeout zijn geen errors, nergens. Alleen in Internet Explorer gaat het fout, ik denk bij window.open, maar heb geen idee wat ik eraan kan doen.
document.getElementById(id)
Heb je ergens iets met <... id="11" ...>?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">
function followURL(id,url,title) {
document.getElementById(id).className='selected';
setTimeout(openWindow(url,title),2000);
setTimeout(clearClass(id),4000);
}
function openWindow(url,title) {
var centerVertical=(screen.height-600)/2;
var centerHorizontal=(screen.width-900)/2;
myWindow=window.open(url,title,'height=600,top='+centerVertical+',width=900,left='+centerHorizontal+',directories=no,location=no,menubar=no,resizable=no')
myWindow.focus();
}
function clearClass(id) {
document.getElementById(id).className='';
}
</script>
function followURL(id,url,title) {
document.getElementById(id).className='selected';
setTimeout(openWindow(url,title),2000);
setTimeout(clearClass(id),4000);
}
function openWindow(url,title) {
var centerVertical=(screen.height-600)/2;
var centerHorizontal=(screen.width-900)/2;
myWindow=window.open(url,title,'height=600,top='+centerVertical+',width=900,left='+centerHorizontal+',directories=no,location=no,menubar=no,resizable=no')
myWindow.focus();
}
function clearClass(id) {
document.getElementById(id).className='';
}
</script>
Echter krijg ik nu een andere foutmelding: Regel 10 Ongeldig argument. Dit zou dus in de volgende regel moeten zijn:
Deze functie slaat terug op:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
function openWindow(url,title) {
var centerVertical=(screen.height-600)/2;
var centerHorizontal=(screen.width-900)/2;
myWindow=window.open(url,title,'height=600,top='+centerVertical+',width=900,left='+centerHorizontal+',directories=no,location=no,menubar=no,resizable=no')
myWindow.focus();
}
var centerVertical=(screen.height-600)/2;
var centerHorizontal=(screen.width-900)/2;
myWindow=window.open(url,title,'height=600,top='+centerVertical+',width=900,left='+centerHorizontal+',directories=no,location=no,menubar=no,resizable=no')
myWindow.focus();
}
Iemand enig idee?
Alvast bedankt!
Jeroen
Probeer eens wat ik zei, misschien werkt dit in sommige gevallen ook, maar volgens de JS-manual moet het echt met aanhalingstekens...
Je hebt inderdaad gelijk, ik heb bij de setTimeout aanhalingstekens toegepast en toen deed hij het.
Iedereen bedankt!