Javascript не работает для HTML-страницы с HTML-тегами внутри фреймов - PullRequest
1 голос
/ 05 января 2012

Я хочу запустить следующий JavaScript на сайте без тега <body>, и он состоит из <framesets> для вложения документов.

document.onclick= function(event) {
    if (event===undefined)
        event= window.event;
    var target = 'target' in event ? event.target : event.srcElement;
    alert("clicked");
};

HTML-документ, с которым я имею дело, довольно причудлив, так какЯ никогда не видел ничего подобного.Во всяком случае, JavaScript не будет работать, но сообщение об ошибке не отображается.Firebug возвращает только HTML xPath, а не весь / html / frameset / frame / html / body / div / a, поэтому я вижу, что есть некоторые проблемы с наличием тегов frameset.Примечание. У меня нет контроля над целевым сайтом, который я должен тестировать.

<html>
    <head>
        <title>weird site...</title>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="IE=EmulateIE8" http-equiv="X-UA-Compatible">
    </head>
    <frameset frameborder="0" border="0" framespacing="0" cols="*,796,*">
        <frame scrolling="no" noresize="noresize" src="/main/left.php" name="links" style="background-color: transparent;">
            <html>
                <body>
                    <div>
                        <a>text</a>
                    </div>
                    ....
                </body>
            </html>
        </frame>
        <frameset frameborder="0" border="0" framespacing="0" rows="58,*">
            <frame scrolling="no" noresize="noresize" marginheight="0" marginwidth="0" src="/main/top.php" name="oben" style="background-color: transparent;">
                <html>
                    <body>....</body>
                </html>
            </frame>
            <frameset frameborder="0" border="0" framespacing="0" cols="116,680">
                <frame scrolling="no" noresize="noresize" marginheight="0" marginwidth="0" src="/main/login.php" name="persoenliches" style="background-color: transparent;"></frame>
                <frame scrolling="auto" noresize="noresize" marginheight="0" marginwidth="0" src="/main/index.php" name="mitte" style="background-color: transparent;"></frame>
            </frameset>
        </frameset>
        <frame scrolling="no" noresize="noresize" src="/main/right.php" name="heartbeat"></frame>
        <noframes></noframes>
    </frameset>
</html>

1 Ответ

1 голос
/ 05 января 2012

Куда вы кладете свой код Javascript?Помните, что каждый отдельный фрейм является независимой страницей, содержащей отдельные windows (глобальные переменные) и documents, поэтому вы не можете написать обработчик событий в одном месте и ожидать, что он будет работать для всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...