-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;
}
分享您的'''Probleme.js'文件代碼。 –
P.S - HTML5中的框架[已過時](https://en.wikipedia.org/wiki/HTML_element#Frames),不鼓勵使用。 –
這是一個iframe,我知道這是一個允許... –