[gelöst] Externes Javascript in Unterseiten wird nicht ausgeführt

Begonnen von CLS2018, 29 Januar 2018, 21:56:31

Vorheriges Thema - Nächstes Thema

CLS2018

Hallo,

ich habe auf meiner TabletUI ein fertiges Wetter Widget von wetter.com eingebunden (https://www.wetter.com/apps_und_mehr/website/homepagewidget/).
Funktionierte prima.

<div class="gridster">
<ul>
<li data-row="1" data-col="3" data-sizex="4" data-sizey="4">
<header>Wetter Test</header>

<!-- Fertiger Code von Wetter.com -->
<div id="wcom-580964e4ea5372af1af2612bc63aebef" style="border: 1px solid rgb(57, 37, 37); background-color: rgb(202, 83, 83); border-radius: 5px; color: rgb(7, 93, 240);" class="wcom-default w300x250">
<link rel="stylesheet" href="//cs3.wettercomassets.com/woys/5/css/w.css" media="all">
<div class="wcom-city"><a style="color: rgb(7, 93, 240);" href="https://www.wetter.com/deutschland/berlin/DE0001020.html" target="_blank" rel="nofollow" title="Wetter Berlin">Wetter Berlin</a></div>
<div id="wcom-580964e4ea5372af1af2612bc63aebef-weather"></div>
<script type="text/javascript" src="//cs3.wettercomassets.com/woys/5/js/w.js" defer></script>
<script type="text/javascript">_wcomWidget({id: 'wcom-580964e4ea5372af1af2612bc63aebef',location: 'DE0001020',format: '300x250',type: 'spaces'});</script></div>

</li>
</ul>
</div>




Mit der Umstellung auf Unterseiten funktioniert der Aufruf des externen Scriptes nicht mehr.

<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="5">
<div class="">

<div data-type="pagebutton" data-url="#page_content_wetter.html" data-load="#content_wetter"
data-off-background-color="transparent" data-off-color="#606060"
data-on-background-color="#606060" data-on-color="#222222"
data-active-pattern=".*#page_content_wetter.html"
data-icon="fa-sun-o"
class="top-space"></div>

</div>
</li>

<li data-row="1" data-col="2" data-sizex="9" data-sizey="5">
<div class="page" id="content_wetter"></div>
</li>
</ul>
</div>


Der Rahmen und die Überschrift des "Wetter.com-Codes" wird angezeigt, der Script-Aufruf wird ignoriert.

Hat jemand eine Idee

Vielen DANK

Wiesel

Hallo CLS2018,

vor dem gleichen Problem stand ich auch schon. Bei einer Suche hättest du eigentlich fündig werden müssen, da sich mein Titel nicht wesentlich von deinem unterscheidet.
Benutzt du Pagetab oder Pagebutton ?


Bei Pagebutton siehe Antwort von setstate in meinem Thread.

https://forum.fhem.de/index.php/topic,77261

Grüße
Tobias
Raspi 4 mit FHEM und CUL / Conbee2

CLS2018

Hallo Tobias,

vielen Dank für deine Antwort und sorry, dass ich deinen Eintrag nicht gefunden hatte.
Ich allerdings zugeben, dass mit das Finden nicht wirklich weitergeholfen hätte.

Ich verwendet (soviel ich weiß) keine Pagetab oder PageButton.

Ich muss auch gestehen, dass ich aktuelle nicht weiß wie ich die Lösung von setstate umsetzen sollte.

Für jede Hilfe offen.

cls2018

setstate

Man könnte den script Teil aus den Unterseiten auf die Hauptseite in den Header verlagern



<script type="text/javascript" src="lib/jquery.min.js"></script>
<script type="text/javascript" src="//cs3.wettercomassets.com/woys/5/js/w.js" defer></script>
<script type="text/javascript">
    $(document).on("changedSelection", function() {
        if (_wcomWidget && $('#wcom-580964e4ea5372af1af2612bc63aebef').length > 0) {
            _wcomWidget({
                id: 'wcom-580964e4ea5372af1af2612bc63aebef',
                location: 'DE0001020',
                format: '300x250',
                type: 'spaces'
            });
        }
    });

</script>


CLS2018

Ich habe sowohl die Lösung mit dem IFrame sowie die Verlagerung des Skriptcodes erfolgreich getestet.
Setstates Lösung habe ich jetzt tatsächlich umgesetzt.

Vielen Dank für eure Unterstützung!

CLS2018

AlpenFlizzer

Hallo!

Uralter Thread, aber brandaktuelles Problem aus der selben Thematik....

Wie oben beschrieben, funktioniert das Ausführen der Skripte on.changedSelection prima, aber wie funktioniert das, wenn ich damit etwas in einem Popup Dialog bewirken will, das sich in irgendeiner Sub befindet? Das ist ja leider nicht im DOM Tree vorhanden bevor man zum ersten Mal klickt.

Ein mutationObserver auf body.append feuert leider nicht, wenn der Dialog dem body appended wird. (Bei jedem anderen DOM Element beim Pageload feuert er aber...)

Hat jemand eventuell eine Anregung oder gar eine Lösung für diese Aufgabe?

Danke!

Grüße,
Sascha