Beiträge von rehgum

    Danke habe es jetzt gelöst. Lediglich der Js eintrag fehlte auf der Elternseite. Hatte zwar diesen in die index.php von Joomla gepackt, aber nicht realisiert, das dieser in die index.php des Templates gehört.


    Vielen Dank für Ihre Hilfe

    Leider startet dann der Dienst nicht mehr.


    Sie könnten sich die Windows Version einfach hier herrunterladen.

    Dann nur die LogoControl Exe ausführen. Zuvor in der Config XML die IP Adresse auf "0.0.0.0" abändern, dann startet der dienst auch ohne SPS im Netzwerk.

    Wir würden Sie für eine Lösung selbstverständlich auch entlohnen.


    http://www.frickelzeugs.de/logocontrol/installation-windows/


    Im Download ist schon eine Beispiel config. Die weißen Felder sind Schalter (Method) die schwarzen Statusanzeigen (attribut)


    Vieleicht bekommen Sie es ja zeitnah hin?

    Zum verständnis:


    der "Dienst" auf Port 8111 ist die Middelware "LogoControl" von "Frickelzeugs.de" welche im Grunde nichts anderes macht als einen Webservice zu Hosten und auf die Speicherblöcke einer Siemens Logo SPS auszulesen und zu schreiben.

    Die SPS 192.168.2.11 ist eine Siemens Logo 8



    Also

    Dienst liest werte aus SPS
    Dienst schreibt werte in SPS
    Dienst hostet Webservice zum anzeigen der gelesen Werte und zum verändern schreibbarer Werte
    Joomla zeigt Webservice in iframe.

    Mit "Modal" kann ich nichts anfangen.

    was müsste hier verändert werden?

    Code
    // set attribute
    function setDeviceAttribute(deviceId, attributeId, attributeName, currentValue) {
    var newValue = prompt("Attributwert \"" + attributeName + "\" ändern:", currentValue);
    if (newValue != null) {
    jQuery.get('rest/devices/' + deviceId + '/attributes/' + attributeId + '/valueText?set=' + newValue);
    }
    }


    Danke für deine Mühen.

    Jaein,

    Es läuft ein Asus Tinker Board als Server. Hierrauf läuft zum einen Joomla auf Appache und einmal der zweite Dienst, der selbst auch etwas Hostet.

    Joomla: 192.168.2.21/index.php

    Dienst: 192.168.2.21:8111/index.st


    Auf der Joomlapage ist ein iframe zur Dienstseite

    <iframe ....:"192.168.2.21:8111"..>

    Diese wird auch angezeigt. Auch die Buttons auf dieser Seite funktionieren.


    Code
    // call method
    function callDeviceMethod(deviceId, methodId) {
    jQuery.get('rest/devices/' + deviceId + '/methods/' + methodId);
    }


    und auch die Statusabfragen der Seite laufen


    Nur eben die prompt Funktion nicht.


    Wenn ich die Dienstseite 192.168.2.21:8111 direkt aufrufe, funktioniert alles prima.
    Nur eben im iframe nicht.

    Richtig im IE funktioniert das, aber in Chrom nicht und vorallem im FullyKiosk Browser nicht. Auch nicht wenn ich den IE als Fake Agent String imitiere.

    Eine Idee wie man das auch in Chrom/Chromium zum laufen bekommt?

    Wie gesagt ist die Seite offline (im moment hat der Server noch Internetzugang. Sie dient für eine Visualisierung einer SPS.


    Laut Seitenquelltext sollte jQuery auf der iFrame Seite aktiv sein:



    Hier noch der auszug aus meiner index.php aus dem Joomla Template:


    <!DOCTYPE html>
    <html lang="de-de" dir="ltr"
    class='com_content view-article itemid-1422 j38 '>

    <head>
    <base href="http://192.168.2.21/index.php/waschboxen/waschbox-1" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="author" content="Super User" />
    <meta name="generator" content="Joomla! - Open Source Content Management" />
    <title>Waschbox 1</title>
    <link href="/templates/purity_iii/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
    <link href="http://192.168.2.21/index.php/component/search/?Itemid=1422&amp;format=opensearch" rel="search" title="Suchen JBTTouch" type="application/opensearchdescription+xml" />
    <link href="/t3-assets/css/css-fc37d-78807.css" rel="stylesheet" type="text/css" media="all" attribs="[]" />
    <link href="/t3-assets/css/css-0c4ce-78816.css" rel="stylesheet" type="text/css" media="all" attribs="[]" />
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://gc.kis.v2.scr.kaspersky…9B23-F09B4E847056/main.js" charset="UTF-8"></script><script src="/media/jui/js/jquery.min.js?4c902ff0c60fddbd52c19736569792b1" type="text/javascript"></script>
    <script src="/t3-assets/js/js-1ea8c-71789.js" type="text/javascript"></script>
    <script src="http://192.168.2.21:8111/jquery.js" type="text/javascript"></script>
    <script src="/t3-assets/js/js-6606b-66308.js" type="text/javascript"></script>
    <script type="text/javascript">
    jQuery(window).on('load', function() {
    new JCaption('img.caption');
    }); jQuery(function($){ $(".hasTooltip").tooltip({"html": true,"container": "body"}); }); jQuery.noConflict();
    </script>

    <!-- META FOR IOS & HANDHELD -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <style type="text/stylesheet">
    @-webkit-viewport { width: device-width; }
    @-moz-viewport { width: device-width; }
    @-ms-viewport { width: device-width; }
    @-o-viewport { width: device-width; }
    @viewport { width: device-width; }
    </style>
    <script type="text/javascript">
    //<![CDATA[
    if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
    var msViewportStyle = document.createElement("style");
    msViewportStyle.appendChild(
    document.createTextNode("@-ms-viewport{width:auto!important}")
    );
    document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
    }
    //]]>
    </script>
    <meta name="HandheldFriendly" content="true"/>
    <meta name="apple-mobile-web-app-capable" content="YES"/>
    <!-- //META FOR IOS & HANDHELD -->
    <!-- Le HTML5 shim and media query for IE8 support -->
    <!--[if lt IE 9]>
    <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <script type="text/javascript" src="/plugins/system/t3/base-bs3/js/respond.min.js"></script>
    <![endif]-->
    <!-- You can add Google Analytics here or use T3 Injection feature -->
    <!--[if lt IE 9]>
    <link rel="stylesheet" href="/templates/purity_iii/css/ie8.css" type="text/css" />
    <![endif]-->
    </head>



    Code
    // no direct access
    defined('_JEXEC') or die;
    
    // Listing 1
    // Instanz von JDocument erzeugen
    $doc = JFactory::getDocument();
    // jQuery Bibliothek vom Google-CDN hinzuf&uuml;gen
    $doc->addScript('http://192.168.2.21:8111/jquery.js');
    // jQuery Code zum Initialisieren
    $doc->addScriptDeclaration('jQuery.noConflict();');


    Die verwendete jquery.js also 192.168.2.21:8111/jquery.js ist die, welche auch die Seite im iFrame verwendet. (und die funktioniert ja bei direkten aufruf)


    iframe eintrag im Beitrag:


    Code
    <iframe id="wb1" width="1100" height="400" scrolling="no" frameBorder="0" src="http://192.168.2.21:8111"></iframe>


    Vielen Dank für die Hilfe

    Sehr geehrte Community,


    das ist mein erster Beitrag hier. Ich habe zwar die SuFu und Mr. Google bemüht, aber nichts gefunden was hilft, bzw. was ich verstehe.

    Problem ist eigentlich übersichtlich:

    Ich habe eine Applikation (LogoControl) welche wohl in HTML geschrieben ist. (Allerdings als index.st) abgelegt.

    Hier gibt es folgenden abschnitt:

    Code
    // set attribute
    function setDeviceAttribute(deviceId, attributeId, attributeName, currentValue) {
    var newValue = prompt("Attributwert \"" + attributeName + "\" ändern:", currentValue);
    if (newValue != null) {
    jQuery.get('rest/devices/' + deviceId + '/attributes/' + attributeId + '/valueText?set=' + newValue);
    }
    }

    Dieser sorgt dafür das alle in der config.xml als "attribute" makierten felder, beim klicken ein prompt Fenster öffnen, in welchen der neue Wert eingetragen werden kann.

    Nun das funktioniert auch einwandfrei, wenn die die Seite direkt aufrufe.

    Allerdings kommt kein Prompt Fenster mehr, wenn ich diese Seite über ein iframe einbinde. Das mache ich deswegen, weil es 3 Seiten gibt. Auf jeden ist der selbe iframe Link, nur eben unterschiedlich groß und somit unterschiedlich beschnitten.


    Wie bekomme ich es nun hin, das trotz iframe das Prompt kommt?


    iframe ist auf einer Joomla Seite (in einen Beitrag) eingebunden.

    Sowohl die Seite im iframe (127.0.0.1/index.st) als auch die Joomlaseite liegen local auf einen Linux-Server (linaro mit Appache, MySQL und PHP) welcher offline ist.



    Vielen lieben dank.