Внешнее использование JS в FBML - Невозможно получить доступ к внешнему сценарию - PullRequest
2 голосов
/ 28 апреля 2010

Я пытаюсь создать небольшое приложение для Facebook и связать его с фан-страницей на вкладке. Я пытаюсь включить внешний файл javascript на своей странице и вызвать метод для события нажатия кнопки.

Ниже приведена часть кода

<script language="Javascript" src="http://mysite.com/fb.js"></script>
<input type="button" value="Click....." onClick="javascript:showDialog();" />

содержание файла fb.js ниже

function showDialog() {
    new Dialog().showMessage('Dialog', 'Button clickeed');
}

Когда я загружаю вкладку на своей странице поклонника, она показывает ошибку «Невозможно разрешить внешний скрипт», тогда как когда я загружаю URL-адрес холста [http://apps.facebook.com/...] напрямую и нажимаю на кнопку, он работает [показывает диалог].

Включает ли сценарий работы только на холсте, а не на странице профиля?

У меня есть еще один вопрос Изначально у меня был сценарий src в качестве относительного пути, но он выдал ошибку с той же ошибкой - «Невозможно разрешить внешний сценарий». Не могу ли я использовать относительный путь для внешних скриптов?

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

Это связано с определенным поведением вкладок приложения .

Вкладки приложения немного отличается от холста страниц. Когда Пользователь сначала переходит на вкладку, он находится в пассивный режим. Это означает, что приложения не могу автоматически воспроизвести Flash или загрузить JavaScript. Когда пользователь взаимодействует с вкладка - как нажатие Flash объект, страница становится активной, поэтому она может играть во Flash, выполнять JavaScript, и пр.

Похоже на вкладки приложения, они должны быть встроены в FBML, а не внешний ресурс.

0 голосов
/ 20 сентября 2010

Может ли это быть проблемой? http://developers.facebook.com/docs/fbjs

"Большинство провайдеров, которые позволяют разработчикам встраивать JavaScript в свои домены, заставляют разработчиков использовать IFrames для песочницы своего кода. Facebook использует другой подход к этой проблеме. JavaScript, который вы нам предоставляете, анализируется, и любые идентификаторы (функция и переменная) имена) добавьте идентификатор приложения. "

...