2009-09-07 98 views
0
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>'; 

我正在使用这段代码,但函数heights()没有运行,也没有显示任何错误。在JavaScript中使用参数调用函数的正确语法是什么?我是新手,所以没有太多的想法。任何帮助将不胜感激。这段JavaScript代码有什么问题?

+1

您使用Firefox/Firebug进行调试吗?如果直接导航到iframe src中使用的网址,会发生什么情况?函数是否运行? – Antony 2009-09-07 12:29:21

+0

查看函数heights()用于自动调整我的iframe的高度。这应该自动设置它没有做的高度。这就是为什么im卡住了。 – developer 2009-09-07 12:31:14

+0

“Javascript:”在onload等事件处理程序属性中没有用处。您已将它与元素的href属性中的“javascript:”伪协议混淆。 – 2009-09-07 13:18:27

回答

0

检查更换onload="Javascript:heights('a1')"拿出来与大家给出的URL路径。像这样尝试。

var urlname= './a/b.php?company_name='+company_name+'&series='+series; 

而且也难逃报价

Javascript:heights(\'a1\') 
0

你并不需要JavaScript的:高度的onload = “” 已经作用域执行JavaScript。你可以试试这个:onload =“alert('hello world')”

1

把字符串加在一起并不像你想象的那么容易。你在这里遇到各种各样的问题。

var urlname ='/a/b.php?company_name='+company_name+'& series ='+ series;

如果company_name和series可以有不能在URL参数中使用的字符,如空格或加号或百分数或符号或Unicode,则会中断。他们需要编码。

的innerHTML =” < IFRAME HEIGHT = “600px的” WIDTH = “100%” NORESIZE = “NORESIZE”

不能使用 '在HTML PX' 单位,这是CSS。 noresize不需要,无论如何你都不能调整iframe的大小。

SRC = “ '+ URLNAME +'”

如果URLNAME包含 “<或&你可能有麻烦。需要进行HTML编码。

NAME =” AOL “FRAMEBORDER =”0“ALIGN =”ABSBOTTOM“scrolling =”no“id =”a1“name =”a1“

您有两个名字吗?可以尝试使用window.frames数组或getElementsByName。

的onload = “使用Javascript:高度( 'A1')”>

'需要反斜杠逃逸,因为你使用的是在你的innerHTML =字符串分隔符' ...”分配。

不要用'javascript:'开始事件处理程序,只有在href中才有意义(甚至不应使用javascript:URL)。

如果你让你的heights()函数采用一个对象而不是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);