【问题标题】:Button onclick() event should not open link按钮 onclick() 事件不应打开链接
【发布时间】:2013-05-29 00:28:41
【问题描述】:

这可能听起来很奇怪,但我想要一个按钮,其链接在用户单击时不会打开:

<a href="http://mysite.nl/test.php?value=snow"> click</a>

我想这样做是因为这个链接有 PHP 值来重新创建页面。按钮以新的背景颜色打开。

我不能只使用

document.body.style.backgroundColor='Snow'

因为页面会自动重新加载,即使页面重新加载,我也希望颜色保持“雪色”。

这可以吗?有没有更好的方法可以通过单击按钮永久更改样式?

【问题讨论】:

  • 所以,当他们单击链接时,您想要做的是更改当前页面的查询字符串,以便在自动重新加载时传递新颜色。你是如何进行自动重载的?因为如果它在&lt;meta http-equiv="refresh"&gt; 标签中,那你就不走运了;无法从 Javascript 更改它。并且在第一次读取标签时建立 URL;它不会因为当前页面的位置而改变。
  • 一个令人困惑的问题。当用户重新加载页面时,您希望背景保持不变,还是希望用户单击按钮时不发生任何事情
  • 我是用meta http-equiv="refresh 来自动重载的,那么就没有办法了吗?

标签: php html


【解决方案1】:

您可以为此使用 php SESSION

$_SESSION['color']='snow';

并在每次重新加载时从会话中获取值。 并使用 preventDefault() 来防止使用 javascript 进行链接重定向

【讨论】:

    【解决方案2】:

    我建议使用隐藏字段并将背景作为值,然后使用javascript获取隐藏字段的值

    【讨论】:

      【解决方案3】:

      如果您希望它对用户永久存在,则应将其存储在数据库中。你应该通过调用你的服务器来做到这一点。您可以为此使用 ajax。使用 jquery 的 ajax 功能真的很容易。

      http://api.jquery.com/jQuery.ajax/

      您应该使用 ajax 发布到您的服务器并更改数据库中的背景颜色。如果您不想刷新页面,则应使用 javascript 更改背景颜色。

      同样,jQuery 让这一切变得非常简单... $('element').css('background-color','color');

      【讨论】:

        【解决方案4】:

        你尝试创建一个简单的onclick='javascript:myfunction(); return false;'>测试 ?

        然后你在 'myFunction()'

        中实现你想要的

        【讨论】:

          【解决方案5】:

          您可以使用本地存储。

          分配隐藏字段颜色的值。只需在 url http://mysite.nl/test.php?value=red 中传递颜色即可。

          HTML

           <form>
                <a id="change-bg" href="#"> click</a>
                <input type="hidden" name="color" value="<?=(!empty($_GET['value']) ? $_GET['value'] : '')?>"/>
              </form>
          

          JQUERY

          <script src="http://code.jquery.com/jquery-1.9.1.min.js" type="text/javascript"></script>
              <script type="text/javascript">
              $(function() {
                  if (typeof(Storage)!=="undefined" && typeof localStorage.bgColour !== 'undefined' ) {
                      $('body').css({'background' : localStorage.bgColour});
                  }
                  $('#change-bg').click(function(){
                      $('body').css({'background' : $('[name="color"]').val()})
                      localStorage.bgColour = $('[name="color"]').val();
                      return false;
                  });
              });
          </script>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-17
            • 2012-07-27
            • 1970-01-01
            • 2021-11-22
            • 1970-01-01
            相关资源
            最近更新 更多