Как я подтверждаю, что окно браузера открыто с JavaScript?

Прежде всего, вы хотите немного изменить массив замены, чтобы вы могли легко заменить текст правильной ссылкой. Затем вы можете использовать strtr().

foreach ($replacement as $orig => $sub) {
    $replacement[$orig] = '<a href="'.$sub.'">'.$orig.'</a>';
}

/* So now $replacement looks like this:
array(3) {
    ["another example"]=>
        string(56) "<a href="http://another-example.com">another example</a>"
    ["examples"]=>
        string(42) "<a href="http://examples.com">examples</a>"
    ["example"]=>
        string(40) "<a href="http://example.com">example</a>"
}
*/

$content = strtr($content, $replacement);

РЕДАКТИРОВАТЬ:

Если вы хотите точные совпадения слов, вам понадобятся регулярные выражения. Вот как я бы попытался это сделать:

$content = "Two examples are the combination of an example and another example.";

$replacement = array(
    'another example' => 'http://another-example.com',
    'examples' => 'http://examples.com',
    'example' => 'http://example.com',
);
$new_replacement = array();

foreach ($replacement as $orig => $sub) {
    $new_replacement['/\b'.$orig.'\b/'] = '<a href="'.$sub.'">'.$orig.'</a>';
}

$orig = array_keys($new_replacement);
$sub = array_values($new_replacement);

$content = preg_replace($orig, $sub, $content, 1);

echo $content;
5
задан Alister Bulman 21 October 2008 в 12:20
поделиться

3 ответа

Эта превосходная, всесторонняя статья ("Почти полный контроль над всплывающими окнами") должна ответить на все Ваши вопросы о всплывающих окнах JavaScript.

"JavaScript 1.1 также представил закрытое свойство окна. Используя это свойство, возможно обнаружить, если окно было открыто и впоследствии закрылось. Мы можем использовать это для загрузки страницы непосредственно в более открытое окно, если оно все еще открывается для включенных браузеров JavaScript 1.1":

<script language="JavaScript"><!--
function open_main(page) {
    window_handle = window.open(page,'main');
    return false;
}
//--></script>

<script language="JavaScript1.1"><!--
function open_main(page) {
    if (opener && !opener.closed) {
        opener.location.href = page;
    }
    else {
        window_handle = window.open(page,'main');
    }
    return false;
}
//--></script>

<a href="example.htm" onClick="return open_main('example.htm')">example.htm</a>

Дополнение: можно вернуть дескриптор окна на другой странице путем обращения к названию всплывающего окна этого пути:

window_handle = window.open(page,'myPopupName');

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

4
ответ дан 14 December 2019 в 19:30
поделиться

Нет никакого универсального способа проверить его, поскольку каждое средство блокировки всплывающих окон имеет различное поведение. Например, Opera не будет показанный всплывающее окно, но widow.closed возвратит false как позади сцены, которую Opera сохраняет теневой копией заблокированного окна, на всякий случай пользователь хотел бы видеть его так или иначе.

0
ответ дан 14 December 2019 в 19:30
поделиться
var myWin = window.open(...);

if (myWin.closed)
{
    myWin = window.open(...);
}
1
ответ дан 14 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

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