IE破解了javascript& IFRAME

时间:2011-06-15 23:47:31

标签: javascript

我在“链接”页面上有一个包含URL链接的网站。每个链接都会将您带到一个Frame页面,该页面是一个拉入给定URL的大型iFrame。我正在使用javascript来执行此操作,它适用于FF,Safari,Opera和Chrome,但不适用于IE。有谁知道我可以做些什么来让它在IE中工作?

我在WordPress中构建它。我在标签和标签之间的Head部分有这个:

    <script type="text/javascript" language="javascript"> 
      function loadIF() { 
      iFrameSrc=location.href.split('?'); 
        if ( iFrameSrc[1] != null ) { 
          document.getElementById('external').src=iFrameSrc[1]; 
          } 
        else { 
          document.getElementById('external').src='default_page.htm' 
          } 
        } 
    </script>  

然后我把它放在header.php中:

    <body onload="loadIF()" <?php body_class(); ?>>

这是链接标记:

<a href="/frame1?http://www.website.com">Website</a>

Thanks- 克里斯

1 个答案:

答案 0 :(得分:0)

您似乎在?分割位置是否意味着您正在尝试获取参数?

如果是这样的话:

iFrameSrc = location.search;
if(iFrameSrc)
{
     ... // Code here
}
else
{
    ... // Code here
}

或尝试

if(iFrame && iFrame.length > 2)
{
    ... // Code here
}
else
{
    ... // Code here
}

编辑好的,所以看到你的编辑后,我想我最好加上这个:

获取我给你的第一个代码示例,并将第一个... // Code here替换为:

document.getElementById('external').src= iFrameSrc.substr(1); // This will remove the leading question mark.

<强>更新

<html>
    <head>
        <title></title>
        <script type="text/javascript">
        function iFrameIF()
        {
            iFrameSrc = location.search;
            if (iFrameSrc) 
            {
                alert(iFrameSrc.substr(1));//document.getElementById('external').src = iFrameSrc.substr(1);
            } 
            else 
            {
                alert(); //document.getElementById('external').src = 'http://about:blank'
            }
        }
        </script>
    </head>
    <body onload="iFrameIF()">
        <iframe width="100%" height="1000" marginheight="1" marginwidth="1" align="top" allowtransparency="true" frameborder="0" name="external" id="external"></iframe>
        <br />

    </body>
</html>

输入ie:file://path/to/file.html?test给我一个警告说“测试”