javascript - 为什么<script>和<iframe>标签在iframe的源页面中不起作用?

标签 javascript php html iframe

我正在开发一个在线 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>

这不起作用并给出错误。当我删除脚本标记时,代码就会运行。

最佳答案

如果我理解正确的话:

  1. 您将内容发布到 source.php。

  2. 结果代码包含一个带有属性的 iframe

    src="source.php"

  3. 因此您的页面和 iframe 都从 source.php 获取源代码。

这会导致循环,因此出现 403 是正常的。请将 iframe 的 src 属性更改为其他值,然后重试。

关于javascript - 为什么&lt;script&gt;和&lt;iframe&gt;标签在iframe的源页面中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24568186/

相关文章:

javascript - 从动态表单获取数据到javascript并返回计算

javascript - 将多级对象文字插入数组时,值困惑

javascript - 从图片中拍摄的照片在 Android 中的 cordova 相机插件中裁剪时不会显示

php - Eloquent 关系同步

PHP 不会解析完整的 JSON 文件以获得所有结果

javascript - jquery悬停背景bug

html - 负 css 行未使用 100% svg 图像正确缩放

javascript - 多次调用一个javascript函数

php - 如何查找网站(包括其所有页面)的 HTML 中是否存在 CSS 类?

html - 如何在 html/css 中以直线对齐图像列表?