使用JavaScript插入HTML(Konami代码)

时间:2018-03-31 22:37:54

标签: javascript html

这是我的代码。我希望在执行Konami代码后显示一个链接。警报有效,但链接没有显示......

你能帮我吗?

<script type="text/javascript">
if ( window.addEventListener ) {
  var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
  window.addEventListener("keydown", function(e) {
    kkeys.push( e.keyCode );
    if ( kkeys.toString().indexOf( konami ) >= 0 ) {
      alert("Ajout d'animes à la base de donnée: ACTIVÉ");
      $("<a href='../controlleur/page_ajouter.php'><p>Ajouter un anime à la base</p></a>").insertAfter($('<div id="user_action">'));
      kkeys.length = 0;
    }
  }, true);
}
</script>

1 个答案:

答案 0 :(得分:1)

(我假设您使用了一些使用jQuery的jQuery代码这一事实,即使您没有在问题中对此进行标记。)

这是有问题的一行:

$("<a href='../controlleur/page_ajouter.php'>...</a>").insertAfter($('<div id="user_action">'));

$('<div id="user_action">')创建一个新的DOM元素,因此上述行最终会尝试在不属于该页面的元素之后插入新链接。

假设已经有一个id为id&#34; user_action&#34;在页面中,您可能希望使用jQuery选择器来查找现有元素:

$("<a href='../controlleur/page_ajouter.php'>...</a>").insertAfter($('#user_action'));

这是一个简单的例子:

&#13;
&#13;
$('<div>this will not work</div>').insertAfter($('<div id="foo">'));
$('<div>this works</div>').insertAfter($('#foo'));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="foo"></div>
&#13;
&#13;
&#13;

...这是您更正后的代码:

&#13;
&#13;
if ( window.addEventListener ) {
  var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
  window.addEventListener("keydown", function(e) {
    kkeys.push( e.keyCode );
    if ( kkeys.toString().indexOf( konami ) >= 0 ) {
      alert("Ajout d'animes à la base de donnée: ACTIVÉ");
      $("<a href='../controlleur/page_ajouter.php'><p>Ajouter un anime à la base</p></a>").insertAfter($('#user_action'));
      kkeys.length = 0;
    }
  }, true);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="user_action"></div>
&#13;
&#13;
&#13;