Угловые и Facebook [дубликаты]

Единственное, что я хотел бы добавить к этим замечательным ответам, - это подчеркнуть сохранение ваших файлов в кодировке utf8, я заметил, что браузеры принимают это свойство за установку utf8 в качестве кодировки кода. Любой достойный текстовый редактор покажет вам это, например Notepad ++ имеет пункт меню для подделки файлов, он показывает текущую кодировку и позволяет вам ее изменить. Для всех моих php-файлов я использую utf8 без спецификации.

Некоторое время назад у меня кто-то попросил меня добавить поддержку utf8 для приложения php / mysql, разработанного кем-то другим, я заметил, что все файлы были закодированы в ANSI, поэтому мне пришлось использовать ICONV для преобразования всех файлов, измените таблицы базы данных, чтобы использовать кодировку utf8 и команду utf8_general_ci, добавьте «SET NAMES utf8» на уровень абстракции базы данных после подключения (при использовании 5.3.6 или более ранних версий в противном случае вы должны использовать charset = utf8 в строке подключения) и изменить Строковые функции для использования эквивалентных функций многобайтовых строк php.

15
задан Terumi 15 June 2013 в 22:18
поделиться

2 ответа

Это невозможно сделать с помощью javascript. Некоторые люди думают, что Facebook читает то, что сейчас находится на странице. Это не. Он делает отдельный запрос на ваш сервер, используя тот же URL-адрес (из window.location.href), используя его Scraper, а скребок Facebook не запускает javascript. Вот почему вы получаете {{page_title}} при нажатии на что-то вроде кнопки общего доступа Facebook. Ваш контент должен быть сгенерирован сервером, поэтому, когда Facebook отправляется на адрес, он получает контент, который ему нужен, без необходимости использования javascript. Вы можете выполнить рендеринг на стороне сервера несколькими способами.

  1. Вы можете разрешить вашей серверной технологии визуализировать контент.
  2. Вы можете использовать подход PhantomJS https://github.com/steeve/angular-seo.
29
ответ дан Earl Ferguson 28 August 2018 в 06:55
поделиться

Также существует возможность перепрофилирования виджетов Facebook. Используйте свой метод parse :

FB.XFBML.parse();

после завершения вашего углового материала. Это не работает для моей кнопки обмена (пока !!), но я тестировал ее на симпатичных, и это круто. В основном он повторно просматривает DOM и отображает виджеты Facebook. Вы также можете передать ему один элемент, что-то вроде этой директивы:

'use strict';    
angular.module('ngApp')
.directive("fbLike", function($rootScope) {
    return function (scope, iElement, iAttrs) {
        if (FB && scope.$last) {
            FB.XFBML.parse(iElement[0]);
        }
    };
});

Этот фрагмент сканирует DOM для html5 facebook fb-подобных виджетов при создании последнего элемента в угловом повторителе.

1
ответ дан Zlatko 28 August 2018 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: