如何从iframe中的本地文件夹显示html文件?
我尝试在iframe中显示html文件。如何从iframe中的本地文件夹显示html文件?
该html文件位于我的服务器上的本地文件夹内,具有相关权限(例如:c:\temp
)。
我想:
iframe = document.createElement("iframe"); iframe.src = "file:///c:\temp\a.html";
iframe.style.display = "block";
document.body.appendChild(iframe);
但iframe中不显示内容。
另一种解决办法我试过是使用ajax
显示div
里面的html:
$("#DIV").html(*READ HTML TEXT FROM FILE *)
但这里的问题是,我有图片和CSS文件中包含的HTML页面内,他们不能因为当前位置是我的网站(它们包含在带有html的c:\temp
文件夹中),因此可以显示它们。
有没有人有一个想法如何显示HTML页面的iframe
?
回答:
问题是,浏览器看到file:///c:\temp\a.html
作为浏览器本地文件,所以它指向访问者的C:驱动器。
您可以将本地文件夹设置为您网站的虚拟目录(在IIS中)并使用正确的Web路径(http:// ...)引用该文件。这样你不会移动文件夹,但它仍然可以通过网络服务器。
回答:
假设在从根目录加载html文件而不是temp(因此排除除文件位置的问题以外的所有内容)时它可以正常工作,只要有权访问,就可以加载相对于您网站的文件。它确实需要了解你的路径(如果适用的话) - 本地和服务器。例如,我在托管服务器上有一个名为“temp”的文件夹,它是我网站上的对等端。我发现我的网站位于我的主机上:“c:\ inetpub \ wwwroot \ mydomain.com \ index.htm”。因此我的临时文件夹&文件必须在“c:\ inetpub \ wwwroot \ mydomain.com \ index.htm” \ inetpub \ wwwroot \ temp \ myfile.txt“(同样,temp是我的网站的同行)。
原油例:
string _filePath, _uriServerName = ""; _filePath = Request.PhysicalApplicationPath;
_uriServerName = Request.ServerVariables["SERVER_NAME"].ToLower();
if (_uriServerName != "localhost")
{
int rootPos = _filePath.IndexOf("wwwroot"); //get position wwwroot
_filePath = _filePath.Substring(0, rootPos) + "temp\\myfile.txt";
}
我用上面的加载文件以外的网站。为此,它运作良好。但是,iframe可能会带来一些其他挑战。我不认为这应该提出任何跨域问题,但我并不完全确定。
以上是 如何从iframe中的本地文件夹显示html文件? 的全部内容, 来源链接: utcz.com/qa/263683.html