LINUX.ORG.RU

Получить anchor в WebEngine.

 


0

1

Пока оставил затею перейти на QtWebEngine, не получилось получить anchor в нём. А конкретно в Qt-5.6.3 работало, но в 5.9.1 перестало. Я вот тут оставил пример под именем webengineview.test.tar.xz. Чувак там что-то перестал отвечать, поэтому я подумываю запостить отдельный баг-репорт. Кто-нибудь может подтвердить, пожалуйста, на последней Qt воспроизводится проблема у вас?

★★★★★
Ответ на: комментарий от fluorite

Если вынести html в отдельный файл (например, добавить в ресурсы как index.html), и заменить

mpView->setHtml(html);
на
mpView->setUrl(QUrl("qrc:/index.html"));
всё работает.

fluorite ★★★★★
()
Ответ на: комментарий от fluorite

всё работает.

Да, я в курсе. Но мне не усралось городить кучу временных файлов для 2-х килобайт html, время жизни которых 10-15 секунд.

UVV ★★★★★
() автор топика
Ответ на: комментарий от fluorite

Да, точно. На 5.9.3 работает. Ладно, посмотрим, что остальные скажут. Мне всё равно кажется, что должно и на пустой работать (ибо строка от балды не имеет смысла)

UVV ★★★★★
() автор топика
Ответ на: комментарий от UVV

С любым указанием baseUrl работает, например, так

const QString html = R"(
<html>
<head><base href="http://www.example.com/index.html"></head>
<body>
<p>Some text
<a href="#anchor1">anchor1</a>
<p> Some more text
<a href="#anchor2">anchor2</a>
</body>
</html>
)";

Твои анкоры без базы невалидные, см. 12.4.1 Resolving relative URIs

Not all HTML documents have a base URI (e.g., a valid HTML document may appear in an email and may not be designated by a URI). Such HTML documents are considered erroneous if they contain relative URIs and rely on a default base URI.

fluorite ★★★★★
()
Ответ на: комментарий от fluorite

Not all HTML documents have a base URI (e.g., a valid HTML document may appear in an email and may not be designated by a URI). Such HTML documents are considered erroneous if they contain relative URIs and rely on a default base URI.

А вот это уже интересно, надо почитать по этому поводу...

UVV ★★★★★
() автор топика
Ответ на: комментарий от fluorite

Так блэт, ты меня запутал =)

По твоей же ссылке пункт 12.2

Having defined the anchor, we may link to it from the same or another document. URIs that designate anchors contain a «#» character followed by the anchor name (the fragment identifier). Here are some examples of such URIs:

    An absolute URI: http://www.mycompany.com/one.html#anchor-one
    A relative URI: ./one.html#anchor-one or one.html#anchor-one
    When the link is defined in the same document: #anchor-one
UVV ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.