問題タブ [javascript-automation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
410 参照

macos - javascript オートメーション iTunes のダウンロードボタンをクリック

JXA を使用して iTunes からアプリをプログラムでダウンロードする必要があります。私は次のことをしました:

要素が選択されていません。ボタン [0...7] をクリックしてみましたが、どれも「取得」ボタンではありません。必要なボタンはドキュメント内にあると思いますが、JXA ドキュメントには、ボタン要素はドキュメントではなくウィンドウの子であると明確に記載されています。正しいボタンをクリックする方法についてのアイデアはありますか?

0 投票する
3 に答える
758 参照

objective-c - JXA: CoreServices から CFString 定数にアクセスする

組み込みの ObjC ブリッジを備えたJXAは、オブジェクトFoundationを介してフレームワークから列挙と定数を自動的に公開します。$例えば:

CFStringただし、自動的にインポートされない下位レベルの API にも便利な定数があります。つまり、頻繁に使用されるUTI値 ( UTIなど)を定義する のkUTType*定数です。CoreServiceskUTTypeHTML"public.html"

でそれらをインポートできますが、おそらくそのタイプが であるためObjC.import('CoreServices')、それらの文字列値CFString[Ref]に (簡単に) アクセスできません

返されるものの中心に ある文字列を取得する方法をまだ見つけていObjC.unwrap($.kUTTypeHTML)ません。機能せず、どちらも機能しませんObjC.unwrap($.kUTTypeHTML[0])(または.deepUnwrap())。

私は疑問に思う:

  • これを行うためのネイティブの JXA の方法があれば、私は見逃しています。
  • それ以外の場合は、 toやなど、問題を解決できる関数ObjC.bindFunction()のバインディングを定義するために使用する方法がありませんが、ObjC 署名を変換する方法は私には明らかではありません。CFString*()CFStringGetCString()CFStringGetCStringPtr()
0 投票する
1 に答える
201 参照

objective-c - OS X JXA 内から CFArray や CFString などの値を読み取る/強制するにはどうすればよいですか?

ObjC ブリッジを介して OSX 入力言語の読み取り/設定を試す場合は、次のようなスニペットを記述します。

すぐに、CF 型の obj 参照の戻り値を取得します。ObjC 自体では、これらを NS 値に強制できます。JavaScript for Applications でそれをどのように達成できるかについて何か感覚はありますか?

(文字列またはその他のプリミティブ値の抽出に成功していない CF オブジェクト参照の戻り値を取得しています)

0 投票する
1 に答える
1792 参照

macos - OS X JavaScript for Automation (JXA) を使用して「場所を開く」Apple イベントをリッスンする

OS X JavaScript for Automation (JXA) を使用しており、「場所を開く」Apple イベントをキャプチャできるようにしたいと考えています。

http://www.macosxautomation.com/applescript/linktrigger/に従って、顧客 URL ハンドラーをセットアップしました。同等のことを行うにはどうすればよいですか

JXAと?次のすべてを試しましたが、どれも実行できませんでした。

Apple の JXA ドキュメント ( https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/OSX10-10.html#//apple_ref/doc/uid/TP40014508-CH109-SW15 ) don'オープン ロケーション イベントの処理方法については議論しません。関数の外に追加するとアラートが表示される可能性があるため、スクリプトが開かれます。関数を実行して URL に渡すことができませんでした。

JXA コードを呼び出す AppleScript ハンドラを用意することで、この問題を回避していますが、これは確かに理想的とは言えません。

これについては、JXA クックブック ( https://github.com/dtinth/JXA-Cookbook )にも何も表示されませんでした。

0 投票する
1 に答える
1178 参照

javascript - 「runScript」関数を使用して JXA スクリプトを実行すると、パラメーターが許可されない

JXA を使用してAlfred 2のワークフローのスクリプトを作成していますが、最近、別のスクリプト内からスクリプトを実行しようとしました。スクリプト間でテキストを渡す必要があるため、パラメーターを使用することにしましたが、文字列、数値、配列など、オブジェクトではないものを渡そうとすると、エラー " Error on line 4: Error: An error occurred." が発生します。オブジェクトを渡すと、2 番目のスクリプト (最初のスクリプトによって実行されるスクリプト) は、渡されたオブジェクトではなく、空のオブジェクトを受け取ります。最初のスクリプトが AppleScript の場合も同じことが起こりますが、2 番目のスクリプトが AppleScript の場合は、すべて完全に機能します。osascriptコマンドラインから引数を渡すことも機能します。API が壊れているのでしょうか、それとも間違っているのでしょうか?

最初のスクリプト:

2 番目のスクリプト:

編集:

2 番目のスクリプトを次のように編集すると、ダイアログは表示されますがrunScript、最初のスクリプトのメソッドは依然としてエラーを返します。

編集2:

パラメータのrunScript問題以外は、関数は実際には完全に機能しているようです。エラーは実際にスローされるのではなく、スクリプト エディターによって表示されるだけであり、呼び出しの後、runScript何も起こらなかったかのように実行が続行されます。パラメータが機能していないにもかかわらず、戻り値も完全に機能します。

Alfred 2 ワークフローに関する注意事項

Alfred 2 でコードを実行するには (検索、キーボード コマンドなどによってトリガーされます)、ファイルではなく、アプリのボックスに入力する必要があります。 コードを入力するボックスは非常に小さく、構文が強調表示されないため、コードの編集が難しく煩わしくなります。ファイルが小さい場合は問題ありませんが、ファイルが大きい場合は、短いスクリプトを使用してスクリプト ファイルを実行する方が簡単です。最も単純なオプションである Bash を試しましたが、Alfred 2 には一重引用符をエスケープするオプションがありません。また、スクリプト ライブラリを使用することもできません (私の知る限り、間違っている場合は訂正してください)。これは、コードがスクリプト バンドルに含まれておらず、必要なすべてのファイルが同じフォルダー内にある必要があるためです (エクスポートの理由により)。