Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Javascript/JQuery uitlezen url van iframe cross domain  (gelezen 652 keer)

Offline MKe

  • Lid
  • Steunpunt: Nee
Javascript/JQuery uitlezen url van iframe cross domain
« Gepost op: 2015/09/08, 09:37:42 »
Hoi,

Ik heb een probleem met het uitlezen van de url van een iframe en dan met name vanwege de cross-domain beveiliging.
Ik heb een website (intern) waarin de source van een iframe dynamisch wordt gezet via een selectbox. De pagina's in de iframe zijn dynamisch, dus de url kan veranderen. Ik wil graag steeds vanuit de parent kunnen uitlezen wat de huidige url in de iframe is.

In mijn html in de body:
    <select id="viewerselect" class="form-control">
        <option value="">--</option>
        <option value="http://test1.mydomain/>test1</option>
       <option value="http://test2.mydomain/>test2</option>
        <option value="http://test2.mydomain/">test3</option>
    </select>
<iframe class="embed-responsive-item1" id="remoteview" src=""></iframe>

De javascript:
<script>
    document.domain="mydomain";
$(document).ready(function(){
    $("#viewerselect").change(function(){
  // zorgt voor het veranderen van de src in de iframe, dit werkt
   $("#remoteview").attr('src', $(this).val());
});
    $("#button").click( function(){
        var waarde = document.getElementById('remoteview').contentWindow.location;
        alert(waarde);
    });
});
</script>
[code]
Nu werkt hetuitlezen van de locatie prima als in de html in de embedded pagina de document.domain ook naar 'mydomain' wordt gezet. Doe ik dit niet dan krijg ik de melding:
[code]
Error: Permission denied to access property "toString"
Ik neem aan dat dit door de cross-domain protectie komt.


Mijn vraag:
Buiten het de vraag hoe onveilig het is om alleen een url uit te lezen, weet iemand een mogelijkheid om dit te doen zonder de html op al die andere viewers aan te passen?
Maar is er een methode om dit te voorkomen? M.a.w. kan ik