1

これは、HTML要素をGoogle Chrome拡張機能のポップアップ(.html)に追加するためにループで使用しているコードの一部です。

  • ' wordlist 'は単語の配列です。
  • ' rand 'は、乱数生成関数です。

コード:

for (l=1; l<11; l++) { 
    var i = rand(wordlist.length;
    var h1 = document.createElement("h1");  
    h1.innerHTML = wordlist[i];
    document.body.appendChild(h1);
}

既存のHTML要素はありません。したがって、このコードは空白のページに10個のランダムな単語を追加しています。

ここで、単語をページに追加する代わりに、ページへのリンクを追加したいと思います(例:http://dictionary.reference.com/browse/**wordlist[i]**、これは基本的にその特定の単語に対するdictionary.comクエリです)。また、クリックするとこのリンクが新しいChromeタブで開かれるようにしたいと思います。どうすればよいですか?

PS:私は前日にHTMLとJSを学び始めましたが、興奮してコードを書き始めることができませんでした。問題に対する簡単なGoogleの解決策を見落としていた場合は、お詫び申し上げます。お時間をいただきありがとうございます。

4

4 に答える 4

2
for (l=1; l<11; l++) { 
    var i = rand(wordlist.length);
    var a = document.createElement("a");  
    a.setAttribute('href', 'http://dictionary.reference.com/browse/'.wordlist[i]);
    a.setAttribute('target', '_blank');
    h1.innerHTML = wordlist[i];
    document.body.appendChild(a);
}

基本的にはh1をaに変更するだけです。
また、属性href(リンク)とターゲット(オープンエンドである必要がある場所)を設定します。

于 2011-03-11T08:28:36.157 に答える
2

DOMを使用する場合は、

for (l=1; l<11; l++) { 
    var i = rand(wordlist.length;
    var a = document.createElement("a");
    a.href = "http://dictionary.reference.com/browse/" + wordlist[i];
    a.appendChild(document.createTextElement(wordlist[i]));
    document.body.appendChild(h1);
}

HTMLを追加するのは1回だけなので、次の方が高速になります(DOM操作にはコストがかかります)。

var html = "";
for (l=1; l<11; l++) { 
    var i = rand(wordlist.length);
    html += "<a href='http://dictionary.reference.com/browse/" + wordlist[i] + "'>"
                + wordlist[i]
          + "</a>";
}
document.body.innerHTML += html;
于 2011-03-11T08:30:03.480 に答える
1

コードを次のように変更してみてください。

for (l=1; l<11; l++) { 
  var i = rand(wordlist.length);
  var a = document.createElement("a");  
  a.innerHTML = wordlist[i];
  a.href = "http://dictionary.reference.com/browse/" + wordlist[i];
  document.body.appendChild(a);
}

2行目の問題を修正しましたが、閉じ括弧を省略していました。また、h1をaに変更し、hrefを設定する行を追加しました。

于 2011-03-11T08:25:29.647 に答える
0

変更するのと同じくらい簡単です

 h1.innerHTML = wordlist[i];

あなたが何を求めているのか、すなわち:

 h1.innerHTML = "<a href='http://dictionary.reference.com/browse/"+wordlist[i]+"' target='_blank'>"+wordlist[i]+"</a>";

新しいタブで開くには、属性「target」を追加し、値を空白にする必要があります。HTML5では非推奨だと思いますが...

于 2011-03-11T08:28:13.797 に答える