Ich versuche, eine Funktion aus einem anderen Frame aufzurufen, aber ich kann nicht scheinen, durch das Dom zu reisen, richtig? Mache ich etwas falsch?Zugriff auf einen inneren Rahmen Html?
indes.html Code:
<frameset rows="25%, 75%">
<frame src="top.html"></frame>
<frameset cols="50%, 50%">
<frame src="frame_left.html" name="left_frame">
<frame src="frame_right.html" name="right_frame">
</frameset>
</frameset>
in top.html ich habe:
<body>
<h1>Top Frame</h1>
<button onclick="clicked()">Click me !</button>
<script type="text/javascript">
function clicked() {
console.log("you clicked");
console.log(top.frames["left_frame"].left());
}
</script>
</body>
frame_left.html ich habe:
<body>
<h3>Frame left</h3>
<script type="text/javascript">
function left() {
console.log("You called the left function from left frame");
}
</script>
</body>
ich diesen Fehler:
top.html: 12 Uncaught SecurityError: Bl hat einen Frame mit dem Ursprung "null" von einem Frame mit dem Ursprung "null" abhängig gemacht. Protokolle, Domänen und Ports müssen übereinstimmen.
Wie rufen Sie diese Testseiten in Ihrem Browser auf - über HTTP oder einfach über das Dateiprotokoll? Die Fehlermeldung weist darauf hin, dass es sich um Letzteres handeln könnte. Ich würde empfehlen, dass Sie einen lokalen Webserver für Entwicklung und Tests einrichten (so etwas wie WAMP/MAMP für einen Anfänger.) – CBroe
Nein, es ist einfach nur HTML. Verwenden von Chrome zum Öffnen der Dateien. Ist es nicht möglich, über DOM-Manipulation darauf zuzugreifen? @CBroe – Beto
Wenn Sie sie nur als lokale Dateien öffnen, wenden viele Browser strengere Regeln an, wenn es darum geht, was JavaScript tun kann. Ich bin mir ziemlich sicher, sobald Sie diese Seiten über HTTP aufrufen, sollte das Problem weg sein. – CBroe