如何在点击时创建新的 .html 网页? [关闭]

Posted

技术标签:

【中文标题】如何在点击时创建新的 .html 网页? [关闭]【英文标题】:How do I create a new .html webpage onclick? [closed] 【发布时间】:2015-11-29 12:19:32 【问题描述】:

我想要做的是当用户单击我的 html 按钮时,我想在服务器上动态创建一个新网页。我需要新网页的url有自己的url,也就是应该不一样。

更详细:当用户单击按钮时,我想将新的 .html 文件上传到服务器。因此,例如,如果我有一个名为 www.check.com/index.html 的网站,当用户单击 index.html 中的按钮时,我需要创建一个包含一些 html 行的新 .html(但没有 CSS,什么都不会显示在页面上)。因此,当用户单击按钮时,我希望将文件上传到具有唯一 URL(如 www.check/1.html)的服务器,第二次将是 check.com/2.html 等等。我1.html、2.html 等等都可以。

javascript 代码:

 function makePage()
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
if(xmlhttp.readyState==4 && xmlhttp.status==200)
    alert("webpage " + xmlhttp.responseText + " was successfully created!");

var content = "<html><head></head><body><meta name=\"twitter:card\" content=\"summary_large_image\"><meta name=\"twitter:site\" content=\"@nytimes\"><meta name=\"twitter:creator\" content=\"@SarahMaslinNir\"><meta name=\"twitter:title\" content=\"Parade of Fans for Houston’s Funeral\"><meta name=\"twitter:description\" content=\"Blah Blah Blah content.\"><meta name=\"twitter:image\" content=\"\"><script>document.getElementById(\"imgTweet\").innerHTML.write(img);</script></body></html>";
xmlhttp.open("GET","makePage.php?content=" + content,true);
xmlhttp.send();

'img' 是我不同页面中的一个变量。代码创建的网页没有被执行。

【问题讨论】:

所以你需要三样东西。 (1) 一个 HTML 按钮和一个通过 AJAX 访问 PHP 脚本的 JS 代码。 (2) 一个 PHP 脚本,它从数据库中获取一个自动递增的数字,创建 HTML 文件并使用自动递增的数字保存它。 (3) 一个数据库,一个表,一个自增ID字段。 你在使用框架吗? .. 这允许基于 url 变量创建页面。看来您需要从那里开始。 Laraval 似乎很受欢迎,但最好还是去找一个关于 MVC 框架的视频教程来构建你自己的简单版本,这样你就可以学习一些基础知识。 【参考方案1】:

您必须使用AJAX 来执行php。使用file_put_contents() 在 php 中创建新文件非常简单。

这是一个例子: makePage.html:

    <html>
    <body>
    <button onclick="makePage()">click</button>
    <script src="makePage.js">
    </script>
    </body>
    </html>

makePage.php:

<?php
$content = $_GET["content"];
$file = uniqid() . ".html";
file_put_contents($file, $content);
echo $file;
?>

makePage.js

function makePage()
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function()
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
        alert("webpage " + xmlhttp.responseText + " was successfully created!");
    
    var content = "<html><head><meta charset=\"utf-8\" /> </head><body>new website<script>alert(\"test\")</script></body></html>";
    xmlhttp.open("GET","makePage.php?content=" + content,true);
    xmlhttp.send();

希望这会有所帮助

【讨论】:

谢谢!能否请您添加 AJAX 脚本? AJAX 脚本包含在“makePage.html”中 好的,谢谢,我试试你的方法。我在问题中添加了一些内容。 它的工作原理完全符合您的要求,只需从 .php 文件中删除“path/”并将 .html 中的“content”变量编辑为您希望在新页面中包含的文本。除非同时创建两个页面,否则 php uniqid() 将为您提供唯一的名称。 太棒了,谢谢。我会试试看,并在第二天回复你。

以上是关于如何在点击时创建新的 .html 网页? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何关闭80端口,怎样关闭80端口

html 点击按钮 加载一个网页

如何让 Ajax 调用在此处显示输出? [关闭]

如何在网页中加入关闭窗口的按钮

求助:这个网站不允许在新的窗口打开网页

HTML中如何让窗口在点击按钮关闭该窗口?