当我按下按钮时,我有一个运行脚本的页面。当页面在单独的窗口中打开时,它可以工作,但是当我在其他页面的框架内打开该页面时,单击同一个按钮时不会发生任何事情。可能是什么问题呢?
代码:
<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>
如上所述,它在单独打开时正常运行,但在框架中它不起作用。 (我使用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 :(得分:0)
也在iframe标记内声明您的<script src="probleme.js"></script>
。我相信它目前正位于主网页的<head>
标记中。
您看到此问题是因为父JS无法访问iframe中的事件。您应该将脚本包含在iframe的源代码中。