Toon posts:

[JS] iframe + contentWindow multidomain "rechten probleem"

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een projectje, hierbij heb ik een iframe geplaatst. Nou wil ik detecteren of de URL van het iframe buiten de toegestaande URL's komt.

Ik kan zonder problemen de URL uitlezen zolang ik binnen mijn eigen domain blijf, link ik het iframe echter naar Google dan is het niet meer uit te lezen (is niet erg).
code:
1
document.getElementById('objectdinges').contentWindow.window.location

Nou genereerd die code het volgende:
Error: uncaught exception: [Exception... "Failure" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://dev.domain.com/prname/thingy.js :: anonymous :: line 145" data: no]
Zodra de iframe onder een ander domain (google bijvoorbeeld) valt, en ik de contentWindow (vanaf parent naar frame) aanroep, dan krijg ik direct die foutmelding.

Ik vind het geen ramp, want ik wil toch enkel binnen mijn eigen domain controleren, maar juist om te zien of er informatie geladen wordt vanaf "externe sites" wil ik dit gebruiken.

Hoe kan ik nou echter de foutmelding afvangen? Iets als de volgened code (vanaf de parent) moet toch wel werkend te krijgen zijn?
code:
1
2
3
if (!document.getElementById('a').contentWindow) {
  alert('phishing / hacker warning..');
}

  • JeromeB
  • Registratie: September 2003
  • Laatst online: 29-12-2025

JeromeB

woei

Probeer eens een try-catch-statement:
JavaScript:
1
2
3
4
5
6
7
8
9
try
{
    frame.contentWindow.location.blablabla;
}
catch(error)
{
    window.alert(error);
    frame.location.href = bla;
}

PC load letter? What the fuck does that mean?


Verwijderd

Topicstarter
JeromeB schreef op vrijdag 01 september 2006 @ 02:08:
Probeer eens een try-catch-statement:
Damn, dat is een mooi systeem. :9
code:
1
2
3
4
5
6
7
8
9
10
11
12
var okd = true;
try {
  document.getElementById('fradinges').contentWindow.window.location;
}
catch(error) {
  okd = false;
}
if (okd==true) {
  //url vergelijkende code hier
} else {
  //geen rechten oid
}

  • JeromeB
  • Registratie: September 2003
  • Laatst online: 29-12-2025

JeromeB

woei

Die if lijkt mij overbodig:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
try
{
    document.getElementById('fradinges').contentWindow.window.location;

    // wel rechten
    // code verder afhandelen (url vergelijkende code etc)

}
catch(error)
{
    // geen rechten
}

PC load letter? What the fuck does that mean?