0

では、まず始めに。jquery も ajax も、純粋な JavaScript もありません。text.html というページに次のコードがあります。

<html><body>
<script>
function live(ID,txt2) {
    var a = document.getElementById(ID);
    a.innerHTML = (txt2);
}
setInterval(live, 250);
a.innerHTML =(txt2);
</script>
<div id="txt1">Live</div><p />
</body></html>

live2.html に次のコードがあります

<html>
  <body>
<p />
<iframe width="400" height="50" src="text.html" name="frameA" id="frameA"></iframe><p />        
<input type="button" value="Live" onClick="document.getElementById('frameA').contentWindow.live('txt1','L I V E')">
<input type="button" value="Rebroadcast" onClick="document.getElementById('frameA').contentWindow.live('txt1','Rebroadcast')"><br />
 <a href="text.html" target="frameA">text</a>
 </body>
</html>

現在のコードは、iframe 内の情報を更新することで、私が望んでいたとおりに機能します。私の問題はこれです。誰かが text.html に直接アクセスした場合、そのドキュメントに変更を加えたものを表示できるようにしたいと考えています。例: ボタンをクリックすると、iframe のテキストに再ブロードキャストと表示されます。他の誰かが text.html にアクセスすると、再ブロードキャストも表示されます。彼らが text.html を見ているときに live ボタンを押すと、text.html ページが更新され、live という言葉が表示されます。これでPHPスクリプトも実行できます。私はjqueryを試してみましたが、正しく動作させるのに問題があり、他の多くのものを実装するための知識やアクセス権が実際にはありません. これは進行中のプロジェクトです。最終結果は、実際にはフレームが配置されているページと同じページにいなくても更新できる iframe になることを願っています。(同じドメイン tho) コンテンツは、画像から、YouTube の埋め込みや写真まで、あらゆるものになります。私は、この言語がどのように機能するかをより包括的に理解しようとしています。そのため、一度に 1 歩ずつ進めています。チュートリアルにアクセスしたり、事前に作成されたソリューションを見たりすることに問題はありません。ご協力いただきありがとうございます。:)

4

3 に答える 3

1

私はおそらく何かが欠けていると思います。text.html にハードコードされているため、ユーザーには常に「Live」というテキストが表示されます。JavaScript を使用してテキストを変更しても問題はありません。これは、表示しているブラウザーにのみ影響するためです。永続ストレージ (データベースなど) に保存し、ページに動的に表示する必要があります。

于 2012-09-27T00:43:23.007 に答える
0

まず、プログラミング言語を学んでいる人が、その言語でできることとできないことを完全に理解していない場合に起こることです。当初のアイデアは、特定のグループの人々に、いつ再放送されたのか、または番組がライブになったのかを知らせることでした. その情報を変更するタイミングを制御して、ある種の管理者だけが利用できるようにしたかったのです。結局、アイデア全体が破棄され、まったく実用的ではなくなりました。基本的に、解決策は、私がこれを達成したかった方法のコンテキストには存在しません。数年後...解決策は、CSSを使用してdivタグ内でライブおよび再ブロードキャストを行うことです。次に、JavaScript 関数を使用して、div の属性を非表示または表示に変更します。ボタンまたはリンクは、ライブ テキストまたは再ブロードキャスト テキストと同じページに存在する必要があります。これは、別のフレームが必要ないことも意味します。この要素をページの外部から制御するには、値を別の場所に保存し、その値を定期的にチェックする必要があります。 JSFiddle

スクリプト:

var x = document.getElementById("txt1");
var y = document.getElementById("txt2");


function htext() {
    x.style.visibility = 'visible';
    y.style.visibility = 'hidden';
}

function stext() {
    x.style.visibility = 'hidden';
    y.style.visibility = 'visible';
}

function ctext() {
    var z = getComputedStyle(x).getPropertyValue("visibility");
    if (z != 'hidden') {
        stext();
    } else if (z != 'visible') {
        htext();
    }
}

CSS:

#txt1 {
    visibility: hidden;
    margin-left:0px;
}
#txt2 {
    visibility:visible;
    margin-left:0px;
}

HTML:

<span id="txt1">Live</span>

<span id="txt2">Rebroadcast</span>

<br />
<a href="javascript://" onclick="ctext();">click</a>

実を言うと。情報を別の場所に保存し、特定の条件が真であるかどうかを確認するために必要なプログラミングについては、完全にはわかりません。上記のプログラムは、基本的に div を隠して表示します。さらに一歩進んで、JQuery を使用して実際の div 自体を作成および削除することもできます。最終的に、これは私が最終的に使用したソリューションに本質的に近く、後で破棄してプロジェクトをあきらめました。

于 2015-06-09T01:40:58.480 に答える
0

live2.html は AJAX を使用してサーバーに変更を送信し、サーバーは live.html を更新できます。しかし、これはバージョン管理やコンテンツ管理システムの外部で live.html のコンテンツが更新されることを意味するため、これは適切な方法ではありません。sukeさんのおっしゃる通り、本物のデータベースを使って動的にページを生成した方がいいです。

于 2012-09-27T01:38:52.917 に答える