2016-06-12 13 views
-2

ボタンを押すとスクリプトを実行するページがあります。ページが別のウィンドウで開かれたときに動作しますが、他のページのフレーム内でそのページを開くと、同じボタンをクリックしても何も起こりません。何が問題なの?フレーム内で開いているページでスクリプトが実行されていない

コード:

<form class="inout"> 
Input:<br> 
<textarea rows="4" cols="50" id="in"></textarea> 
</form> 


<form class="inout"> 
Output:<br> 
<textarea rows="4" cols="50" id="out" readonly></textarea> 
</form> 

<br> 
<button id="btn" onclick="rucsac();" >Ruleaza!</button> 

、スクリプトが頭の中で宣言されています

言われたよう
<script src="probleme.js"></script> 

、individualy開かれたとき、それは適切に実行されますが、フレーム内に、それは動作しません。 (私はChromeを使用) とスクリプト:

function read(params) 
{ 
var mytext= document.getElementById("in").value; 
var i=0,l=0; 
while(i<mytext.length) 
{ 
    var nr=0; 
    while(mytext[i]>='0'&&mytext[i]<='9'&&i<mytext.length) 
    { 
     nr=nr*10+(mytext[i]-'0'); 
     i++; 
    } 
    params[l++]=nr; 
    while(!(mytext[i]>='0'&&mytext[i]<='9')&&i<mytext.length) 
    { 
     if((mytext[i]>='a'&&mytext[i]<='z')||(mytext[i]>='A'&&mytext[i]<='Z')) return 0; 
     i++; 
    } 
} 
} 
function rucsac() 
{ 
var v = new Array(); 
document.getElementById("out").value=""; 
if(read(v)==0) 
{ 
document.getElementById("out").value="Datele de intrare contin caractere necorespunzatoare!"; 
return 0; 
} 
if(v.length===0) 
{ 
document.getElementById("out").value="Cititi datele inainte de rulare!"; 
return 0; 
} 
var n=v[0],g=v[1]; 
if(v.length<n+2) 
{ 
document.getElementById("out").value="Date incomplete!"; 
return 0; 

} 
var i,j,l=1,MAX=0; 
var w= new Array(100001), p=new Array(100001), pf=new Array(100001).fill(0); 
    for(i=1;i<=n;i++) 
     { 
    w[i]=v[++l]; 
    p[i]=v[++l]; 
    } 

    for(i=1;i<=n;i++) 
     for(j=g-w[i];j>=0;j--) 
      if(pf[j+w[i]]<pf[j]+p[i]) 
    { 
     pf[j+w[i]]=pf[j]+p[i]; 
     if(pf[j+w[i]]>MAX) MAX=pf[j+w[i]]; 
    } 
document.getElementById("out").value+=MAX; 
} 
+0

あなたの 'Probleme.js'ファイルコードを共有してください。 –

+0

P.S - フレームはHTML5の[廃止](https://en.wikipedia.org/wiki/HTML_element#Frames)ですので使用することをお勧めします。 –

+0

これはiframeです、私はこれが許可されていることを知っています... –

答えて

0

は同様にあなたの<script src="probleme.js"></script> iframeタグの内側に宣言します。私はそれが現在、メインのWebページの<head>タグに現在存在していると信じています。

親JSがiframe内のイベントにアクセスできないため、この問題が発生しています。 iframeのソースの中にスクリプトを含める必要があります。

+0

* "iframeタグの中にある" *は非常に誤解を招く言葉です。それは '