2014-02-06 2 views
0

У меня есть минимальное знание javascript, поэтому, пожалуйста, будьте добрыми. Я создал очень простой javascript, который показывает случайную цитату от политика, который сказал это, когда и предоставляет ссылку на источник цитаты. Это выглядит примерно так:Есть ли способ получить внешние данные в javascript?

/the quote 
var n_text = new Array(); 
/the link 
var n_lnkk = new Array(); 
/the party member that said it and when 
var n_part = new Array(); 

n_text [1]="blah"; 
n_text [2]="blah blah"; 
n_text [3]="blah blah blah"; 
etc 

n_lnkk [1]="http://..."; 
n_lnkk [2]="http://..."; 
n_lnkk [3]="http://..."; 
etc 

n_part [1]="whosaidit1"; 
n_part [2]="whosaidit2"; 
n_part [3]="whosaidit3"; 
etc 

Затем я использую Math.random и document.write, чтобы показать случайную цитату и показать кнопку твиттера, чтобы люди могли чирикать, и кнопку обновления, чтобы показать другую случайную цитату как это:

бла Http: // ... whosaidit и когда

Я знаю document.write это не самый лучший способ сделать это, но я пробовал другие методы, и они не работали с кнопкой twitter, так что придется ждать, пока я не найду для нее решение, но это не вопрос, который у меня есть сейчас.

Проблема в том, что этот скрипт стал огромным (почти 1000 кавычек), поэтому блоггер не позволяет мне добавлять в него больше текста. Есть ли способ разместить данные во внешнем файле где-нибудь и прочитать javascript и отобразить результаты и по-прежнему держать его относительно простым, так как у меня есть очень простые знания jscript или html? Пожалуйста, имейте в виду, что я использую блоггер, поэтому у меня есть ограниченные возможности, но я думаю, что внешний файл с данными будет работать

+0

Где-то вы имеете в виду другой файл на сервере или на другом сервере. – jeremyjjbrown

+1

Два слова: [* Ajax *] (https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started) и [* JSON *] (http://json.org/) – Bergi

ответ

0

Было бы действительно просто на самом деле просто скопировать и вставить ваши массивы и то, что вы их установили как в отдельный .js-файл. Скопируйте его только там, где у вас есть документ document.write. Затем включите его в свой тег ...

<script src="http://HostedSomewhere/Quotes.js"></script> 

Удостоверьтесь, что он включен перед вашим старым кодом.

0

Да, вы можете поместить данные во внешний файл. Я бы предложил JSON file.

Что вы хотите сделать это либо вызвать файл JSON, как например:

$.getJSON("link/to/json/file.json", variableOrFunctionNameHere); 

ИЛИ

$.getJSON("link/to/json/file.json", function(d){...logic here...}); 
//the d is the data from the file. 

Однако это не всегда может работать, так что я хотел бы посмотреть в this question как загрузить его неасинхронно.

Теперь, чтобы использовать файл JSON, вам нужно изучить некоторые обозначения.

Допустим, вы устанавливаете JSON файл вот так:

[ 
    { 
     "name" : "Chris Christie", 
     "quote": "I closed the bridge!", 
     "date" : "February 1, 2014", 
     "link" : "https://somelinktosomewhere.com" 
    }, 
    { 
     "name" : "Hillary Clinton", 
     "quote": "Vote for me if I run next election!", 
     "date" : "March 31, 2014", 
     "link" : "https://somelinktosomewhere.com" 
    },  
] 

и что файл JSON загружается в переменную с именем myVariable. Затем, чтобы получить доступ к нему, вы найдете случайное число в размере файла JSON (каждый выбор в скобках - это объект), а затем myVariable[randomNumber].name получит доступ к атрибуту имени файла. Так, например, myVariable[0].name вернет строку "Chris Christie". Файлы JSON действительно мощные и простые в использовании.

1

Я думаю, что нашел простое и практичное решение. iFrame сделал это. Я разместил свой сценарий на свободном сервере, а затем использовал iFrame, чтобы получить его в своем блоге.Это был первый ответ, который я получил, но, похоже, он был удален с тех пор.

+0

@yenshirak: Это не спасибо, так как оригинала нет. –

Смежные вопросы