按下按钮时更新iframe'src'(表单'文件'按钮)

时间:2012-03-31 18:41:30

标签: javascript html forms

首先让我说我不知道​​这样做是否可行,我来这里寻求帮助。

正如主题所指出的那样,我想要实现的是,按下按钮,我想要加载的内容会出现在iframe中....

起初,我做的是这样的: iframe html是这样的:

<iframe id="my-frame" src=""></iframe>

,简单的表单代码是这样的:

<form action="#" method="post" target="my-frame">
<input type="file" name="localFile"  id="localFile">
 <input type="submit" id="Sbtn" name="Sbtn" value="submit">
</form>

哪个 加载我在iframe中选择的名为“my-frame”的内容,而是当我按下时 按钮,它加载当前打开的页面,我最终得到像,一个有趣的镜子效果,你看到同样的东西一遍又一遍自己.......或根本没有加载,iframe部分保持白色......

所以我放弃并再次尝试了一些Js,不确定这是不是可行的方法但是......我必须尝试一下。所以说,我从它的形式部分取出了“target =”my-frame“,然后把它放进去。

var myFrame = document.getElementById("my-frame");
var btn2 = document.getElementById("Sbtn");
var field2 = document.getElementById("localFile");

btn2.onclick = function(){
        if(field2.value ==""){
            //enter error message or something.
        } else {
          myFrame.src = field2.value;
          return false;

        }
}

然后,当我这样做时,我会收到“无法找到页面”等错误...无论我做什么页面都无法找到。

我得到的确切错误是:

Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.

我不明白,因为我通过出现的向导导航到文件(无论是什么)。

现在进行进一步的故障排除,当我做常规链接时...例如(伪代码)

<a href =" path to local file here " target="the iframe id"></a>

然后加载它就好......

所以我迷失了。

关于我做错什么或者......我失踪了什么的想法?

任何提示,链接,任何形式的任何帮助都会高兴而谦卑地接受。 谢谢你提前。

Somdow http://somdowprod.net/

1 个答案:

答案 0 :(得分:2)

据我所知,你想要的是:

  • 选择输入类型=文件
  • 的文件
  • 点击提交
  • 所选文件应显示在iframe(您期望的内容)

AFAIK,这只能通过IE完成。 Chrome及其安全设置的原因FF不同(更高)。您可以尝试使用警报命令来查看IE,Chrome和& Firefox浏览器。只需更改您的代码:

...
} else {
  alert(field2.value); ///--- add this line
  myFrame.src = field2.value;
  return false;
}
...

使用所有3种主流浏览器(IE,Chrome,FF)打开文件。选择文件时,查看每个文件的结果,然后分别单击“提交”按钮。


正如我测试的那样,IE的结果是硬盘到文件的完整路径:

C:\Documents and Settings\DUNGPRO\My Documents\A WALLPAPER\abc.jpg

Chrome使用伪路径替换路径:

C:\fakepath\abc.jpg

firefox只给你文件名:

abc.jpg

是的,虚假路径或文件名只是显示404-File未找到的内容。只有IE才能为您提供预期的路径&amp;这就是为什么你的代码可以正常使用IE。

希望你不觉得这太糟糕了,而Chrome和&amp; FF是默认的,无法在代码中进行更改。只是认为它们是出于用户的安全考虑。找到另一种方法。祝你好运。