Ответ на +1 karim охватывает его. Вы также можете сказать:
"SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')"
, чтобы выполнить объединение строк в конце MySQL, а не в том, что в этом случае есть какая-то особая причина.
Все становится немного сложнее, если частичный wrd
, который вы ищете, может сам содержать символ процента или подчеркивания (поскольку они имеют особое значение для оператора LIKE) или обратную косую черту (которую MySQL использует как другой уровень экранирования в операторе LIKE - неправильно, согласно ANSI SQL-стандарт).
Надеюсь, это не повлияет на вас, но если вам нужно правильно это получить, вот беспорядочное решение:
$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);
Браузеры могут блокировать доступ к window.top
из-за та же политика источника . Ошибки IE также происходят. Вот рабочий код:
function inIframe () {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
top
и self
оба window
объекты (наряду с parent
), таким образом, Вы видите, является ли Ваше окно главным окном.
Так как Вы спрашиваете в контексте приложения Facebook, Вы могли бы хотеть рассмотреть обнаружение этого в сервере, когда начальный запрос выполнен. Facebook проведет набор querystring данных включая fb_sig_user ключ, если это назовут от iframe.
, Так как, вероятно, необходимо проверить и использовать эти данные так или иначе в приложении, используйте его для определения соответствующего контекста для рендеринга.
RoBorg корректен, но я хотел добавить примечание стороны.
В IE7/IE8, когда Microsoft добавила Вкладки к их браузеру, они повредили одну вещь, которая вызовет опустошение с Вашим JS, если Вы не будете осторожны.
Воображают этот макет страницы:
MainPage.html
IframedPage1.html (named "foo")
IframedPage2.html (named "bar")
IframedPage3.html (named "baz")
Теперь в кадре "baz" Вы нажимаете на ссылку (никакая цель, загрузки в кадре "baz"), это хорошо работает.
, Если страница, которая загружается, позволяет, называют его special.html, JS использования, чтобы проверить, имеет ли "это" родительский кадр, названный "панелью", это возвратит (ожидаемый) true.
Теперь позволяет, говорят, что страница special.html, когда она загружается, проверяет родительский кадр (для существования и его имени, и если это - "панель", она перезагружает себя в кадре панели. например,
if(window.parent && window.parent.name == 'bar'){
window.parent.location = self.location;
}
Пока неплохо. Теперь прибывает ошибка.
Позволяет, говорят вместо того, чтобы нажать на исходную ссылку как нормальный, и загрузить страницу special.html в кадре "baz", Вы щелкнули средней кнопкой по нему или приняли решение открыть его на новой вкладке.
, Когда та новая вкладка загружается ( без родительских кадров вообще! ) IE введет бесконечный цикл загрузки страницы! , потому что IE "копирует по" структуре кадра в JavaScript, таким образом, что новая вкладка ДЕЙСТВИТЕЛЬНО имеет родителя, и что родитель ИМЕЕТ имя "панель".
хорошие новости, то, что проверка:
if(self == top){
//this returns true!
}
, в котором новая вкладка действительно возвращает true, и таким образом можно протестировать на это нечетное условие.