sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Webdialog problem

    Scheduled Pinned Locked Moved Developers' Forum
    12 Posts 6 Posters 830 Views 6 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T Offline
      todd burch
      last edited by

      Sometimes an uncaught JS exception can silently kill the works. Surround all your JS code with try{} catch{} blocks and see what happens.

      1 Reply Last reply Reply Quote 0
      • T Offline
        talig
        last edited by

        Todd is right. Haven't thought of that...
        If it's possible, you should debug the JS separately with the error pane in Firefox (or FireBug plugin, if you so fancy).
        That will help focusing on the problem.

        • Tali

        Avatar: all rights reserved to Bryan Eppihimer

        1 Reply Last reply Reply Quote 0
        • chrisglasierC Offline
          chrisglasier
          last edited by

          If you don't mind me repeating, if you are using a webdialog do as much as possible in its html file.

          I also suggest you generate html using something like this:

          
          for(a=0; a<abcdArray.length; a++){
          
          obj=document.createElement(tagname)
          document.getDocumentById(parentId).appendChild(obj)
          
          with(obj){
          innerHTML = abcdArray[a]
          
          with(style){
          ...
          } }
          
          }
          
          

          If still troublesome you can use try .. catch(e) to find which iteration causes the problem.

          As far as possible just use ruby for the connection (e.g. opening the dialog) and any action in the SU interface.

          Hope this helps,

          Chris

          With TBA interfaces we can analyse what is to be achieved so that IT can help with automation to achieve it.

          1 Reply Last reply Reply Quote 0
          • scottliningerS Offline
            scottlininger
            last edited by

            Talig,

            In the code for the dynamic link that you're generating, are you using a "#" as the href? If so, try changing it to "javascript:;" and see if that helps. For example, if you have something like this...

            <a href="#" onclick="doSomething()">Link</a>
            

            Change it to this...

            <a href="javascript&#058;;" onclick="doSomething()">Link</a>
            

            Or even better, get rid of the link entirely...

            <span onclick="doSomething()">Link</span>
            

            I've seen a problem similar to what you're describing that was caused by something like the above.

            Cheers,

            • Scott Lininger
              SketchUp Software Engineer
              Have you visited the Ruby API Docs?
            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              @unknownuser said:

              Talig,

              In the code for the dynamic link that you're generating, are you using a "#" as the href? If so, try changing it to "javascript:;" and see if that helps. For example, if you have something like this...

              <a href="#" onclick="doSomething()">Link</a>
              

              Change it to this...

              <a href="javascript&#058;;" onclick="doSomething()">Link</a>
              

              Or even better, get rid of the link entirely...

              <span onclick="doSomething()">Link</span>
              

              I've seen a problem similar to what you're describing that was caused by something like the above.

              Cheers,

              Or, make sure the onclick() event returns false. That will prevent the website from trying to follow the URL in the HREF.

              Thomas Thomassen β€” SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • T Offline
                talig
                last edited by

                Scott,
                I'm not the one who posted the question πŸ˜„

                • Tali

                Avatar: all rights reserved to Bryan Eppihimer

                1 Reply Last reply Reply Quote 0
                • P Offline
                  Pout
                  last edited by

                  Hey all, thanks for the support and answers.

                  I have made a workarround by just generating and regenerating my html script all from in ruby itself.
                  So there is no external html file used anymore. This off course is not the best way (like chris says it's better to do all in html) but for now, it will do. I'll see if i can solve this in the near future. It it to be expected that the way i use now is slower or less stable?

                  Scott, the href contains javascript:doSomething();
                  Maybe if i drop the href and use the span it will solve.
                  I'll keep you posted once i get into this again.

                  Regards and thanks!

                  1 Reply Last reply Reply Quote 0
                  • scottliningerS Offline
                    scottlininger
                    last edited by

                    @pout said:

                    I have made a workarround by just generating and regenerating my html script all from in ruby itself.
                    So there is no external html file used anymore. This off course is not the best way (like chris says it's better to do all in html) but for now, it will do.

                    I dunno, the advantage is that your script install has fewer files. Unless you're regenerating an extremely large set of HTML or doing it a lot, I think you'd be fine with that approach.

                    @unknownuser said:

                    Scott, the href contains javascript:doSomething();
                    Maybe if i drop the href and use the span it will solve.
                    I'll keep you posted once i get into this again.

                    In that case, I think that if doSomething() returns false, as Thom suggested, then the problem should go away. Sounds like you found a solution in any case! πŸ˜„

                    Cheers,

                    • Scott Lininger
                      SketchUp Software Engineer
                      Have you visited the Ruby API Docs?
                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      Pout
                      last edited by

                      on the first point: the set of html is indeed not so small and it is regenerated a lot of times πŸ˜•
                      so in the near future i intend to try getting as much as possible back into the external html again.

                      I'll keep you posted on progress.
                      Thx!

                      1 Reply Last reply Reply Quote 0
                      • chrisglasierC Offline
                        chrisglasier
                        last edited by

                        As you know I am keen to promote the use of webdialogs. One significant reason is that html files can contain links to the world. Afterall we are told by such gurus as Kevin Kelly and Tim Berners-Lee that data linking is the future of the World Wide Web.

                        @pout said:

                        on the first point: the set of html is indeed not so small and it is regenerated a lot of times

                        So I want to post this:

                        Mechanisms should not be designed to suit the size of the current task. They should be made for types of tasks to be reusable with different variables and conditions. Then you and any collaborators will appreciate their existence in the future. Using html markup in quotes in either ruby or javascript files is contrary to this approach. Using tables for layout should be avoided.

                        If you like I am willing to help you do it this way but you will need to show more of what you have achieved so far.

                        Chris

                        With TBA interfaces we can analyse what is to be achieved so that IT can help with automation to achieve it.

                        1 Reply Last reply Reply Quote 0
                        • 1 / 1
                        • First post
                          Last post
                        Buy SketchPlus
                        Buy SUbD
                        Buy WrapR
                        Buy eBook
                        Buy Modelur
                        Buy Vertex Tools
                        Buy SketchCuisine
                        Buy FormFonts

                        Advertisement