Iframes als Image speichern

  • ASP

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von flightgear91.

    Die Position der Controls kannst du mit JavaScript ermitteln.
    Über diese Position sollte es ja dann Möglich sein einen Screenshot zu erstellen.


    JS-Code um die Position zu ermitteln:

    Quellcode

    1. document.getElementById("ControlName.ClientID").style.left
    2. document.getElementById("ControlName.ClientID").style.top




    Gruß
    Habe mit JavaScript auch noch nicht viel gemacht.

    Nachdem ich jetzt rumprobiert habe kann ich wenigstens meine Java Funktion aus dem CodeBehind aufrufen :thumbup:

    Allerdings erhalte ich immer den Fehler, dass die Werte des Controls Null sind:

    XML-Quellcode

    1. <html xmlns="http://www.w3.org/1999/xhtml">
    2. <head runat="server">
    3. <title></title>
    4. </head>
    5. <body>
    6. <script type="text/javascript" language="javascript">
    7. GetStats = function () {
    8. 'Hier kommt die Fehlermeldung
    9. var MyWidth = document.getElementById('<%= MyFrame.ClientID %>').offsetWidth;
    10. var MyHeight = document.getElementById('<%= MyFrame.ClientID %>').offsetHeight;
    11. var MyLeft = document.getElementById('<%= MyFrame.ClientID %>').style.left();
    12. var MyTop = document.getElementById('<%= MyFrame.ClientID %>').style.top();
    13. };
    14. </script>
    15. <form id="form1" runat="server">
    16. <asp:Button ID="Button1" runat="server" Text="Button" />
    17. <iframe frameborder="1" ID="MyFrame" runat="server" src="http://localhost:57202/WebForm1.aspx"
    18. height= "600px" width= "600px" name="IFrame"></iframe>
    19. </form>
    20. </body>
    21. </html>


    Der Aufruf:

    Visual Basic-Quellcode

    1. Protected Sub _Click() Handles Button1.Click
    2. Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "GetStats", "GetStats()", True)
    3. End Sub


    Wie könnte ich denn, falls die 4 Variablen dann befüllt werden, darauf aus meinem Code zugreifen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „flightgear91“ ()

    Also ein direktes Zugriffen von VB.Net auf die JavaScript variablen ist nicht möglich du musst die Werte aus der JS-Funktion zurück geben und dann in deinem VB.Net Teil verwenden.

    Zu der Null Exception das hängt glaub ich damit zusammen, weil du die ClientID mit in die JS-Funktion übergeben musst.

    Also den Button würde ich wie folgt machen:

    Quellcode

    1. <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="javascript:GetStats(document.getElementById('<%= MyFrame.ClientID %>'))/>



    Und dann die JS-Funktion:

    Quellcode

    1. <script type="text/javascript" language="javascript"> function GetStats (myframe) { try { var MyWidth = myframe.offsetWidth; var MyHeight = myframe.offsetHeight; var MyLeft = myframe.style.left(); var MyTop = myframe.style.top(); alert(MyTop + ', ' + MyLeft + ', ' + MyHeight + ', ' + MyWidth); } catch(ex) { alert(ex.message); } }; </script>



    Ist jetzt ohne return-value nur vorerst zum Test ob es überhaupt so läuft.
    Leider bin ich auch nicht der wahre JS-Pro dazu hat mir bisher die Motivation gefehlt :D

    Den VB.Net CodeBehind mit dem ClickEvent brauchst du dann nicht mehr.
    var MyWidth = MyFrame.window.innerWidth;
    var MyHeight = MyFrame.window.innerHeight;

    var MyTop = MyFrame.screenTop;
    var MyLeft = MyFrame.screenLeft;


    So bekomm ich die richtige Werte. Jetzt muss ich die Werte nur noch im Code verwenden können