首先让我说我不知道这样做是否可行,我来这里寻求帮助。
正如主题所指出的那样,我想要实现的是,按下按钮,我想要加载的内容会出现在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/
答案 0 :(得分:2)
据我所知,你想要的是:
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是默认的,无法在代码中进行更改。只是认为它们是出于用户的安全考虑。找到另一种方法。祝你好运。