我正在开发一个在线 HTML 编辑器。为此,我使用了表单元素。在表单内部,有一个包含 HTML 代码的 Textarea 和一个呈现 HTML 代码的 Iframe。表单的目标是 Iframe。
这是我在编辑器中的代码:
<form id="edfrm" method="post" action="/source.php" target="frame">
<textarea name="code" id="code"></textarea>
<iframe allowtransparency="false" src="/source.php" name="frame" id="frame"></iframe>
<button id="subbutton">Submit</button>
</form>
提交表单后,Textarea 的值将转到 source.php,Iframe 会从 source.php 收集源代码并呈现结果。
这是源代码:
<?php
$runCode = @$_REQUEST["code"];
print $runCode ;
?>
但是当我在文本区域中使用“script”标签或“iframe”标签编写 HTML 代码并提交表单时,我的项目无法正常工作。该错误显示“无法加载资源:服务器响应状态为 403(禁止)”。当我删除“script”或“iframe”标签时,它工作正常。
如果我遇到服务器问题、PHP 配置问题或其他问题,请帮助我。 SVG 也可以工作,但是“script”和“iframe”有什么问题?
我认为,这对我和像我这样的人来说是一个非常严重的问题。请帮忙!
示例:我正在文本区域中编写此代码。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<canvas id = "canvas1" width = "200" height = "100" style = "border-style:solid; border-width:1px;">
</canvas>
<script>
var cnv = document.getElementById("canvas1");
var ctx = cnv.getContext("2d");
ctx.beginPath();
ctx.arc(100,50,40,0,2*Math.PI,true);
ctx.strokeStyle = "Green";
ctx.lineWidth = "10";
ctx.stroke();
ctx.fillStyle = "Yellow"
ctx.fill();
</script>
</body>
</html>
这不起作用并给出错误。当我删除脚本标记时,代码就会运行。
最佳答案
如果我理解正确的话:
您将内容发布到 source.php。
结果代码包含一个带有属性的 iframe
src="source.php"
因此您的页面和 iframe 都从 source.php 获取源代码。
这会导致循环,因此出现 403 是正常的。请将 iframe 的 src 属性更改为其他值,然后重试。
关于javascript - 为什么<script>和<iframe>标签在iframe的源页面中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24568186/