2

是否可以使用服务器上的 html 文件打开一个新窗口?但是无法在浏览器 url 上访问“myfile.html”?

<FORM>
<INPUT type="button" value="New Window!" 
onClick="window.open('./publico/myfile.html','mywindow')">
</FORM>

我将 PHP 与 ff 工作区一起使用:C:\workspace\myproject\publico\index.html

或者你有什么建议吗?

非常感谢!

4

2 回答 2

4

不,不像你的例子。window.open是 JavaScript 代码,它告诉用户的 Web 浏览器打开一个窗口。用户的 Web 浏览器无法访问您服务器上的文件,除非这些文件可通过 Web 获得,即在 URL 上。

您可以使用 PHP 将文档的内容写入 JavaScript 字符串,然后使用 JavaScript 将该内容添加到新打开的窗口中。

这是一个非常糟糕的 JavaScript 示例,它似乎在 Chrome 中几乎可以工作,但我确信代码可以改进,它可能不是可靠的跨浏览器,而且我不知道足够的 PHP 来编写那个:

<script>
var newWindowContent = '<?php echo WHATEVER_PHP_CODE_WILL_WRITE_OUT_THE_HTML_PROPERLY_ESCAPED ?>';
</script>
<FORM>
<INPUT type="button" value="New Window!" 
onClick="var mywindow = window.open(); mywindow.document.getElementsByTagName('html')[0].innerHTML = newWindowContent;">
</FORM>
于 2013-01-30T15:41:35.613 回答
0

不。

网络服务器不知道浏览器是否想在特定窗口中显示文件。这意味着它无法根据此处理权限。

当您希望用户在不满足特定条件的情况下无法访问特定文件时,可以将该文件设为 php 文件,在请求之前设置 cookie,并在该 cookie 时使 php 文件返回 403 禁止错误代码未设置和设置时的内容(请记住,用户可以伪造 cookie)。

于 2013-01-30T15:45:13.903 回答