2011-07-13 11 views
4

私はウェブサイト上でHTMLを変更する方法を探していましたが、Greasemonkey JavaScriptを使用して、私がそれを取り出して変更するために使用できるIDタグがないという主な問題がありました。GreasemonkeyでHTMLを変更する

私はその部分を残しました。私はサーバー上に現在の勝者を記録し、Greasemonkeyを介してJavaScriptを使用して、ゲームサイトで最後の勝利時間を表示しようとしています。以下は

私は<b>タグの間にRaitonの横に現在の時刻を追加したいと思います下の例では、ソースの一部です。

<html> 
<head> 

Most Recent Winner: <b>Raiton</b><br> 
Entry Cost: <font color=22AA22><b>11000</b></font> (resets at Dayroll)<br> 

Entry costs go up in <font color=2222AA><b>11</b></font> entries to <font color=22AA22><b>22000</b></font> Ryo<br> 
Number of plays today: <font color=AA2222><b>0</b></font><br> 


</body> 
</html> 
+0

タグが表示されません。エディタでコードボタンを使用する必要があります。本当にIDタグが何か分かりません。あなたのタグにID属性がないと言っていますか?この場合、追加することができます。あなたが追加できない場合。あなたの質問は不明です。 – user194076

+1

http://stackoverflow.com/editing-help –

+0

これは、HTMLコード自体にアクセスできないが、JavaScriptファイルに追加できるということですか? HTMLの編集可能なセクションをspanタグで囲むことができるのは自明です。 –

答えて

4

これまでのところ、質問に答えた回答はありませんでした。これを試してみてください:

var elts = document.getElementsByTagName('b'), 
    i = elts.length, 
    elt, 
    text; 

while (i--) 
{ 
    elt = elts[i]; 
    text = elt.textContent; 
    if (text === 'Raiton') 
    { 
     elt.textContent = text + ' ' + new Date(); 
     break; 
    } 
} 

デモ:http://jsfiddle.net/mattball/Nvwmd/

+0

タグの取得方法がわからないb。まさに私が探していたものがありがとう。 – winsock

+0

これはGreasemonkey環境であるため、 'innerText'は必要ないことに注意してください。 –

+0

@Brock d'ohは、単純化します。ありがとう。 –

0

あなたはそれのidを経由してのdivオブジェクトを見つけ、その後、<div>タグに変更したいテキストを折り返します。次に、オブジェクトのinnerHTMLメンバーを変更します。

HTML:

<div id='some_id'>A value</div> 

JavaScriptのマークアップは、それがで取得するための 'フック' を提供した方法で書き込まれている場合

var my_div = document.getElementById('some_id') 
my_div.innerHTML = 'Some other value' 
0

Javascriptが最も適しています。あなたは実際にそこに自由に浮動小数点のテキストがあるので、テキストを挿入する特定の場所を識別する良い方法はありません。

ソースを制御している場合は、<p>タグなどをIDとクラスに追加するとよいでしょう。

+0

彼(おそらく)はそのページのソースを制御していません。これはGreasemonkeyアプリケーションです。 –

0

あなたはあなたのコードの一部を更新するためにそれを使用する要素を作成することができます。

はまた、あなたがそれの用語を使用していない、HTML5のためのgoogleしてください。)

<html> 
<head> 

Most Recent Winner: <b>Raiton</b><span id="time_handler">00:00</span><br> <!-- HTML5!? <br /> --> 
Entry Cost: <font color=22AA22><b>11000</b></font> (resets at Dayroll)<br> 

Entry costs go up in <font color=2222AA><b>11</b></font> entries to <font color=22AA22><b>22000</b></font> Ryo<br> 
Number of plays today: <font color=AA2222><b>0</b></font><br> 


</body> 
</html> 

とJavaScriptで:

document.getElementById('time_handler').innerHTML = '11:23'; 
+0


」のコメントはごみです - ['
'は完全に有効なHTML5です(http://stackoverflow.com/questions/1946426/html-5-is-it-br-br-or-br)。とにかく、あなたはなぜOPがHTML5を書いていると思いますか? –

+0

@Mat Ball:(W3C Validator)[http://validator.w3.org/#validate_by_input+with_options]を参考にしていただきありがとうございます。他のアドバイスに感謝します –

0

(後で喜んでいるよ)あなたのGMスクリプトにjQueryのを紹介します。

metadata blockに次の行を追加します。

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js 

次に、このスクリプトは、あなたがやりたいことになります。

var bElem = $ ("b:contains('Raiton')"); 
bElem.text (bElem.text() + new Date()) 


See the demo at jsFiddle.

1

は、このスレッドに従ってください:のMozillaZine:単純なテキスト置換Greasemonkeyと

http://forums.mozillazine.org/viewtopic.php?f=19&t=907475

スキームは以下の通りです:

document.body.innerHTML= document.body.innerHTML.replace(/original/g,"new"); 

あなたは\シンボルで/"のような特別な文字をエスケープする必要があります。