From bibiko@eva.mpg.de Thu Sep 25 10:05:08 2008 From: =?utf-8?q?Hans-J=C3=B6rg?= Bibiko To: textmate@lists.macromates.com Subject: [TxMt] HTML output window: JavaScrip alert() and confirm() Date: Thu, 25 Sep 2008 12:04:53 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2818610252180428417==" --===============2818610252180428417== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hi, up to now it is not possible to use the JavaScript functions alert() and confirm() within TM's HTML output window. But there is a solution (unfortunately this does not work for the HTML preview :( ). The only thing I do is to write a kind of wrapper for these functions by using TextMate.system('"$DIALOG" -e ...'). The try block will be only executed if the code will be showed up in TM HTML output window. If you put these lines into your HTML code the page will work within a normal browser as well as in TM's HTML output window. Attached is a demo command. Simply press the buttons ;) BTW With this approach I can prompt JavaScript errors by using simply "alert(err)" inside of TM ;) --Hans --===============2818610252180428417== Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="JSAlertAndConfirm.tmCommand" MIME-Version: 1.0 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBsaXN0IFBV QkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20v RFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4K CTxrZXk+YmVmb3JlUnVubmluZ0NvbW1hbmQ8L2tleT4KCTxzdHJpbmc+bm9wPC9zdHJpbmc+Cgk8 a2V5PmJ1bmRsZVVVSUQ8L2tleT4KCTxzdHJpbmc+M0NDMUE5ODQtRUY5My00MDExLUFEREMtRkUy RTEwQzZGQjIzPC9zdHJpbmc+Cgk8a2V5PmNvbW1hbmQ8L2tleT4KCTxzdHJpbmc+Y2F0Jmx0OyZs dDstSFRNTAombHQ7aHRtbCZndDsKJmx0O2hlYWQmZ3Q7CiAgICAmbHQ7bWV0YSBodHRwLWVxdWl2 PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCImZ3Q7CiAg ICAmbHQ7dGl0bGUmZ3Q7dW50aXRsZWQmbHQ7L3RpdGxlJmd0OwogICAgJmx0O3NjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IiZndDsKICAgIHRyeSB7IAogICAgICAg IGlmIChUZXh0TWF0ZS5zeXN0ZW0oIiIsIGZ1bmN0aW9uICh0YXNrKSB7IH0pKSB7CiAgICAgICAg ICAgIHZhciBfX1RNX2NvbmZpcm1fU3RhdHVzOwogICAgICAgICAgICBhbGVydCA9IGZ1bmN0aW9u KHMpe1RleHRNYXRlLnN5c3RlbSgnIiRESUFMT0ciIC1lIC1wIFwne21lc3NhZ2VUaXRsZT0iSmF2 YVNjcmlwdCI7aW5mb3JtYXRpdmVUZXh0PSInK3MrJyI7fVwnJyxudWxsKTt9OwogICAgICAgICAg ICBjb25maXJtID0gZnVuY3Rpb24ocyl7VGV4dE1hdGUuc3lzdGVtKCciJERJQUxPRyIgLWUgLXAg XCd7bWVzc2FnZVRpdGxlPSJKYXZhU2NyaXB0IjtpbmZvcm1hdGl2ZVRleHQ9IicrcysnIjtidXR0 b25UaXRsZXM9KCJPSyIsIkNhbmNlbCIpO31cJycsbnVsbCkub25yZWFkb3V0cHV0PWZ1bmN0aW9u KHMpe2lmKHM9PTEpe19fVE1fY29uZmlybV9TdGF0dXM9ZmFsc2V9ZWxzZXtfX1RNX2NvbmZpcm1f U3RhdHVzPXRydWV9fTtyZXR1cm4oX19UTV9jb25maXJtX1N0YXR1cyl9OwogICAgICAgIH0KICAg IH0gY2F0Y2goZSkge30KICAgICZsdDsvc2NyaXB0Jmd0OwogICAgJmx0OyEtLSBEYXRlOiAyMDA4 LTA5LTI1IC0tJmd0OwombHQ7L2hlYWQmZ3Q7CiZsdDtib2R5Jmd0OwogICAgJmx0O2J1dHRvbiBv bmNsaWNrPSJhbGVydCgnSGVsbG8nKSImZ3Q7QUxFUlQmbHQ7L2J1dHRvbiZndDsmbHQ7YnImZ3Q7 CiAgICAmbHQ7YnV0dG9uIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXMnKS5p bm5lckhUTUw9J2NvbmZpcm0gcmVzdWx0OiAnK2NvbmZpcm0oJ0hlbGxvJykiJmd0O0NPTkZJUk0m bHQ7L2J1dHRvbiZndDsmbHQ7YnImZ3Q7CiAgICAmbHQ7YnV0dG9uIG9uY2xpY2s9ImRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCdyZXMnKS5pbm5lckhUTUw9J3Byb21wdCByZXN1bHQ6ICcrcHJvbXB0 KCdIZWxsbycpIiZndDtQUk9NUFQmbHQ7L2J1dHRvbiZndDsmbHQ7YnImZ3Q7Jmx0O2JyJmd0Owog ICAgJmx0O2RpdiBpZD0icmVzIiZndDsmbHQ7L2RpdiZndDsKJmx0Oy9ib2R5Jmd0OwombHQ7L2h0 bWwmZ3Q7CkhUTUw8L3N0cmluZz4KCTxrZXk+aW5wdXQ8L2tleT4KCTxzdHJpbmc+bm9uZTwvc3Ry aW5nPgoJPGtleT5uYW1lPC9rZXk+Cgk8c3RyaW5nPkpTQWxlcnRBbmRDb25maXJtPC9zdHJpbmc+ Cgk8a2V5Pm91dHB1dDwva2V5PgoJPHN0cmluZz5zaG93QXNIVE1MPC9zdHJpbmc+Cgk8a2V5PnV1 aWQ8L2tleT4KCTxzdHJpbmc+RDdCMjVBNDMtMTlBQi00ODZELTgwNDMtMTQ5RDhGMUFGQUQ5PC9z dHJpbmc+CjwvZGljdD4KPC9wbGlzdD4K --===============2818610252180428417==--