2016-06-12 77 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標籤內爲好。我相信它目前位於主網頁的<head>標記中。

您看到此問題,因爲父JS不能訪問iframe中的事件。您應該將腳本包含在iframe的源代碼中。

+0

*「iframe標籤內*」是一個非常令人誤解的陳述。它暗示着'