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

时间:2014-07-04 06:44:42

标签: 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收集源代码并呈现结果。

这是source.php:

<?php
$runCode = @$_REQUEST["code"];
print $runCode ;
?>

但是当我使用&#39;脚本编写HTML代码时标签或&#39; iframe&#39;在Textarea中标记并提交表单,我的项目不起作用。错误说,&#34;无法加载资源:服务器响应状态为403(禁止)&#34;。当我删除&#39;脚本&#39;或者“iframe&#39;标签它工作正常。

如果我遇到服务器问题,PHP配置问题或其他问题,请帮助我。 SVG也有效,但是脚本的问题是什么?和&#39; iframe&#39;?

我认为,对我和其他人来说,这是一个非常严重的问题。请帮助!

示例:我在textarea中编写此代码。

<!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 个答案:

答案 0 :(得分:-1)

如果我理解正确:

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

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

    的iframe
      

    <强> SRC = “source.php”

  3. 因此,您的网页和您的iframe都会从source.php获取来源。

  4. 这会导致一个循环,这样你就可以使用403.请将你的iframe的src属性改为其他任何东西,然后重试。