0

私は、基本的に、URL によって提示された質問に対して「はい」または「いいえ」の回答を提供する Web サイトの 1 つを持っています。例はhttp://isnatesilverawitch.comです。

私のサイトは冗談で、答えは頻繁に変わります。私ができるようにしたいのは、短い 1 つまたは 2 つの単語の文字列を保存し、JavaScript のみを使用して可能であれば、サイトのソースを編集せずに変更できるようにすることです。単一の文字列を保持するためだけにデータベース全体をセットアップしたくありません。

あまり問題なくファイルに書き込む方法はありますか、またはそのようなサイトを強化するために使用できる単一の文字列を取得して変更するように設計された Web サービスはありますか? 変な質問だとは思いますが、私のオフィスの人々は間違いなくこの質問に興奮するでしょう。その場で答えを操作するモバイルアプリを構築することさえ考えています。

追加: 明確にするために、単一の文字列の値を変更したいだけですが、ランダムな回答を使用することはできません。具体的には言わずに、医者が入院しているか外出しているかを示すサイトだと考えてください。ただし、ランダムな回答を吐き出したくはありません。医師が入院している場合はIN、外出している場合はOUTと言う必要があります。この値は手動で変更しますが、プロセスをシンプルにし、モバイル デバイスでできるようにしたいと考えています。電話からソースを編集することはできません (編集したくもありません)。

4

4 に答える 4

2

私が正しく理解している場合は、単純な文字列値を変更してサイトのどこかに表示する単純なテキスト ファイルが必要です。

var string = "loading;"
$.get('filename.txt',function(result){
    string = result;
    // use string
})
于 2013-02-15T20:09:38.457 に答える
1

あなたのための2つのアイデア:

1) JavaScriptのみを使用して、値をランダムに生成します(または、スケジュールに基づいて、事前にハードコーディングすることができ、スクリプトが時間の経過とともに変更を処理します)。

2)Javascriptとサーバーサイドスクリプトを使用して、その場で値を変更できます。

JavaScriptを使用して、値を含むテキストファイルに対してAJAXリクエストを作成します。Shanimalの答えは、それを達成するためのコードを提供します。

その場で値を変更するには、ある種のデータストア(この場合はテキストファイル)に値を書き込む別のサーバー側スクリプトが必要になります。Webサーバーで使用しているサーバーサイドスクリプト(PHP、Perl、ASP、Pythonなど)のランタイムはわかりませんが、でポイントすることで値を変更できるPHPのコードを手伝うことができますhttp://yoursite.com/changeValue.php?Probably。ブラウザ。PHPスクリプトはProbably、テキストファイルに書き込むだけです。

于 2013-02-15T20:16:56.947 に答える
1

サーバー側のコードやデータベースは必要ないため、JavaScript で Google スプレッドシートから値を取得する方法があります。Tabletop ( http://builtbybalance.com/Tabletop/ ) は、これを可能にするために設計されたライブラリの 1 つです。公開の Google スプレッドシートを作成し、「ウェブに公開」を有効にするだけで、公開 URL が得られます。次に、サイトで使用するコードの簡略化したバージョンを次に示します。

function init() {
  Tabletop.init( { url: your_public_spreadshseet_url,
  callback: function (data) {
    console.log(data);
  },
  simpleSheet: true } )
}
于 2013-02-15T20:21:03.530 に答える
0

JavaScript による解決策は可能ですが、お勧めしません。PHP は、サイトの一部をランダムに変更するなどのことを行うように設計されています。あなたがそれを知っていると仮定して、私はjavascriptソリューションにジャンプします。
単語のバリエーションをテキスト ファイルに保存する必要があるため、AJAX を使用してこのファイルをダウンロードするか、.js配列または文字列を使用してファイルに保存する必要があります。
すると言葉を変えたくなります。AJAX を使用すると、ページの読み込み中に単語を変更できるようになります (したがって、変更する必要はありませんが、閲覧者の目の前で変更する必要はありません)。

ページの HTML を変更する

可能な変更方法 (単語は配列内にあります):

wordlist.js

var status = "IN";   //Edit IN to OUT whenever you want

index.html

<script src="wordlist.js"></script>
<div>Doctor is <span id="changing">IN</span></div>
<script>
   function changeWord(s) {   //Change to anything

       document.getElementById("changing").innerHTML = s;

   }
   changeWord(status);  //Get the status defined in wordlist.js
</script>

サーバーからのリロード

回答を動的に変更し、開いているすべてのページで変更効果を表示する場合は、AJAX が必要になるか、次のようにブラウザに単語リストをリロードさせる必要があります。

スクリプトをリロードしています

function reloadWords() {
    var script = document.createElement("script");  //Create <script>
    script.type="text/javascript";
    script.src = "wordlist.js";                   //Set the path
    script.onload = function() {changeWord(status)};    //Change answer after loading
    document.getElementsByTagName("head")[0].appendChild(script);  //Append to <head> so it loads as script. Can be appended anywhere, but I like to use <head>
}

AJAX の使用

ここではテキストファイルの使用を想定しています。私が推測する最も簡単な解決策。AJAX を使用すると、次のようになります。

http = ActiveXObject==null?(new XMLHttpRequest()):(new ActiveXObject("Microsoft.XMLHTTP"));
http.onloadend = function() {
     document.getElementById("changing").innerHTML = this.responseText;  //Set the new response, "IN" or "OUT"
}
http.open("GET", "words.txt")
http.send();

ロングポーリングを使用すると、AJAX 呼び出しのパフォーマンスが向上する場合があります。誰かが興味を持っていない限り、ここではこの機能についてこれ以上紹介しません。

于 2013-02-15T20:14:22.180 に答える