编写脚本时发生了奇怪的事情

时间:2011-08-02 11:34:41

标签: javascript button hide show

我点击了我页面中的链接,然后我的javascrpt功能就完成了 我有这个脚本:

<script>
  function useraccess()
{
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++){
    if (inputs[i].type == "button"){
    inputs[i].style.visibility = "hidden";
                                   }
                                       }
}
</script>

,格式为:

<?php
if(!$_SESSION['isadmin'])
{
 echo '<script>useraccess();</script>';
}
?>

如果我通过点击我写的链接很短的时间来运行它,它会显示按钮然后它们会隐藏但是!如果我包括我写的<script>之前的这一行

<script type="text/javascript" src="file.js"></script>

在代码中使用此行: 我的代码没有问题,当我点击链接时,它会隐藏我的按钮

我看不到按钮“短时间后”会隐藏

我的意思是他们“隐藏”我甚至在短时间内看不到它们

我非常意外地解决了我的问题! 因为我没有file.js!我只是尝试一下。

对我来说这很有趣,我很想知道是什么原因?

1 个答案:

答案 0 :(得分:0)

您的PHP代码将在HTML页面中生成以下代码:

  

&LT;脚本&GT; useraccess();&LT; /脚本&GT;

这将在页面加载时运行,并将隐藏所有按钮。究竟何时发生将取决于您放置该行的页面上的位置。但是运行它与任何按钮都没有没有连接。

既然你谈到了放入表单,我猜你认为以某种方式使你的PHP代码生成Javascript会影响你的页面。它不会。当您的浏览器显示您的页面时,PHP已完成。您需要使用一些Javascript来观察按钮点击。

(如果我误解了你的意图,我很抱歉)。

在OP回复后

编辑

哦,我明白了。所以你确实希望从一开始就隐藏这些按钮,但它们首先出现然后被隐藏了?

我认为问题在于,在页面加载带有按钮的表单之后才会运行'useraccess'功能。

更好的方法是更改​​PHP,以便根本不输出按钮,或者输出它们被禁用。如果用户没有特权,那么它们根本不会出现在页面上。