blockiert eine frame of origin "null" aus, die Zugriff auf eine cross-origin-Rahmen - Chrom

Ich bin neu in Javascript und Lerne die Grundlagen über ein lehrbuch, das konzentriert sich auf Ihre Anwendungen in IE 7+ und Firefox 2+. Allerdings bin ich mit Chrome und erhalte die folgende Fehlermeldung beim ausführen des Programms in dem Buch gegeben: "blockiert ein Rahmen von origin 'null', keinen Zugang zu einem cross-origin-frame ist." Kann mir jemand sagen was den Fehler verursacht und wie ich es beheben kann? Die beiden Programme sind im folgenden beschrieben.

//This is the program being loaded into the browser
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Example</title>

<script type="text/javascript">

function calcFactorial(factorialNumber){
    var factorialResult = 1;
    for(;factorialNumber>0;factorialNumber--) factorialResult *= factorialNumber;
    return factorialResult;
}

</script>

</head>

<frameset cols="100%,*">
<frame name="fraCalcFactorial" src="calcfactorial.htm"/>
</frameset>

</html>

Unten ist die src-Datei

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Example</title>
<script type="text/javascript">
function butCalculate_onclick(){
    try{
        if (window.top.calcFactorial == null)
            throw "This page is not loaded within the correct frameset";
        if (document.form1.txtNum1.value == "")
            throw "!Please enter a value before you calculate its factorial";
        if (isNaN(document.form1.txtNum1.value))
            throw "!Please enter a valid number";
        if (document.form1.txtNum1.value < 0)
            throw "!Please enter a positive number";
    }
    catch(exception){
        if (typeof(exception) == "string"){
            if (exception.charAt(0) == "!"){
                alert(exception.substr(1));
                document.form1.txtNum1.focus();
                document.form1.txtNum1.select();
            }
            else alert(exception);
        }
        else alert("The following error occurred: " + exception.message);
    }
}
</script>
</head>
<body>
<form action="" name="form1">
    <input type="text" name="txtNum1" size="3" /> factorial is
    <input type="text" name="txtResult" size="25" /><br/>
    <input type="button" value="Calculate Factorial"
        name="butCalculate" onclick="butCalculate_onclick()" />
</form>
</body>
</html>
  • Laufen Sie von einem lokalen Computer oder auf einem Webserver gehostet?
  • Standardmäßig Chrome wird nicht zulassen, dass frames geladen von Ihrer lokalen Festplatte für den Zugriff auf alle anderen Inhalte. Wenn die frames waren auf der gleichen web-server, Sie könnte. Chrome hat ein command-line-argument, die vorübergehend auszusetzen, diese Sicherheits-check.
InformationsquelleAutor Matt Fenlon | 2015-05-01
Schreibe einen Kommentar