【发布时间】:2015-07-27 15:06:02
【问题描述】:
我正在尝试将script 元素从 PHP 代码添加到 HTML 并立即将其删除,使其在 HTML 中不可见。该脚本仅包含要同时执行的内容,而不包含功能。一般来说,我试图复制 ASP.NETs runat 属性,所以我可以直接从 PHP 代码中设置元素的值(现在是输入)。
这是我迄今为止尝试过的(我在另一个问题中发现,我的一些更改)并且它正确添加了脚本,但不会删除它。
function JSSetValue($id, $value) // Input 'value' only
{
echo '<script>
var input = document.getElementById("' . $id . '");
input.value = "' . $value . '"
</script>';
$html = <<<HTML
...
HTML;
$dom = new DOMDocument();
$dom->loadHTML($html);
$script = $dom->getElementsByTagName('script');
foreach($script as $item)
{
$item->parentNode->removeChild($item);
break;
}
$html = $dom->saveHTML();
}
【问题讨论】:
-
愚蠢的想法:做修改服务器端。除非他们单击查看源代码,否则用户实际上已经看不到脚本。如果他们单击查看源代码,他们会看到原始 html。从活动文档中删除脚本是没有意义的(如果用户努力检索脚本,它肯定不会对用户隐藏脚本)。
-
如果您使用的是 PHP,只需使用输入值设置服务器端创建页面。它简单干净:)
-
如果您的目标是保护您的 js 文件,请考虑缩小。这使它们很难阅读,并且有人必须竭尽全力才能理解它们。
-
如果我先创建输入元素(使用
echo)然后想设置它的值,是不是像ASP.NET一样容易? -
而且我并没有试图保护我的 js 文件,它只是看起来不太整洁,因为有时我
echo在表格中间的脚本..
标签: javascript php html