var urlname= '/a/b.php?company_name='+company_name+'&series='+series;
document.getElementById('frame2').innerHTML='<IFRAME HEIGHT="600px" WIDTH="100%" NORESIZE="NORESIZE" SRC="'+urlname+'" NAME="aol" FRAMEBORDER="0" ALIGN="ABSBOTTOM" scrolling="no" id="a1" name="a1" onload="Javascript:heights('a1')"></IFRAME>';
我正在使用此代码,但函数高度()未运行且它也没有显示任何错误。在JavaScript中使用参数调用函数的正确语法是什么。我是新手,所以没有太多想法。任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
高度函数位于何处?
您需要转义最内部的引号并删除“javascript:”,例如将onload="Javascript:heights('a1')"
替换为onload="heights(\'a1\')"
答案 1 :(得分:1)
将字符串添加到一起并不像您想象的那么容易。你在这里遇到各种各样的问题。
var urlname ='/ a / b.php?company ='+ company_name +'&amp; series ='+ series;
如果company_name和series中的字符不能包含在URL参数中,例如空格或加号或百分数或符号或Unicode,则会中断。他们需要编码。
innerHTML ='&lt; IFRAME HEIGHT =“600px”WIDTH =“100%”NORESIZE =“NORESIZE”
你不能在HTML中使用'px'单位,即CSS。不需要noresize,无论如何都无法调整iframe的大小。
SRC = “ '+ URLNAME +'”
如果urlname包含“,&lt;或&amp;您可能遇到问题。需要进行HTML编码。
NAME =“aol”FRAMEBORDER =“0”ALIGN =“ABSBOTTOM”scrolling =“no”id =“a1”name =“a1”
你有两个名字?这是无效的,会混淆尝试使用window.frames数组或getElementsByName的任何内容。
的onload = “使用Javascript:高度( 'A1')” &GT;
'需要反斜杠转义,因为你在innerHTML ='...'赋值中使用它作为字符串分隔符。
不要使用'javascript:'开始一个事件处理程序,它只在href中有意义(即便如此,javascript:URL也不应该被使用)。
如果你使你的高度()函数取一个对象而不是一个id字符串,你就可以取消所有这些名字。使用DOM方法可以避免考虑HTML转义。例如:
function heights() {
alert(this.offsetHeight); // 'this' is the object the event was called on
}
var iframe= document.createElement('iframe');
iframe.frameBorder=iframe.scrolling= 'no';
iframe.style.height= '600px';
iframe.style.width= '100%';
iframe.onload= heights;
iframe.src= '/a/b.php?company_name='+encodeURIComponent(company_name)+'&series='+encodeURIComponent(series);
document.getElementById('frame2').appendChild(iframe);
答案 2 :(得分:0)
查看您获得的网址路径。试试这样。
var urlname= './a/b.php?company_name='+company_name+'&series='+series;
并且也逃脱了引号
Javascript:heights(\'a1\')
答案 3 :(得分:0)
您不需要JavaScript:高度onload =“”已经作用于执行JavaScript。你可以试试这个:onload =“alert('hello world')”