国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
auto-settings
重複したエクスポートオプションスポーン
結(jié)論
ホームページ ウェブフロントエンド jsチュートリアル Trello Chrome拡張機(jī)能の構(gòu)築方法 - リストのエクスポート

Trello Chrome拡張機(jī)能の構(gòu)築方法 - リストのエクスポート

Feb 20, 2025 am 11:23 AM

Trello Chrome拡張機(jī)能の構(gòu)築方法 - リストのエクスポート

前の部分では、拡張機(jī)能の基本を構(gòu)築し、カスタムファンデーション駆動(dòng)の設(shè)定畫面を介して認(rèn)証を?qū)g裝し、TrelloのJavaScriptクライアントライブラリを使用しました。この部分では、エクスポートロジックとUIを追加して拡張機(jī)能を終了します。

キーテイクアウト

    `chrome.extension.sendmessage` APIを使用して、Chrome拡張機(jī)能の設(shè)定ページと背景ページの間でセキュアトークン転送を転送します。
  • 最初のインストール時(shí)に、または認(rèn)証なしでTrelloボードにアクセスしたときに、拡張機(jī)能の設(shè)定ページを自動(dòng)的に開(kāi)きます。
  • TrelloのUIにカスタムメニューオプションを統(tǒng)合して、jQueryを使用して動(dòng)的なDOMの変更を処理し、リストのエクスポートを有効にします。
  • トレロUIの制限のために必要なリスト內(nèi)のカード要素の検査を含む回避策を通じてTrelloリストIDを取得します。
  • バックグラウンドスクリプトでメッセージの渡されて、リストIDが取得されたら、TrelloのAPIからリストカードを取得するように実裝してください。
  • TXTとJSON形式の両方でエクスポートオプションを提供し、カスタムビルドモーダルポップアップを使用してエクスポートデータを表示し、TrelloのネイティブスタイルとのCSS競(jìng)合を回避します。
  • メッセージング
  • 設(shè)定畫面でTrelloで認(rèn)証すると、Trelloトークンはローカルストレージに保存されます。ただし、設(shè)定ページは獨(dú)自のページであり、事実上、獨(dú)自の環(huán)境です。Ergo、拡張機(jī)能の背景ページも拡張機(jī)能のコンテンツスクリプトもアクセスできません。これは、メッセージの合格を使用する必要がある場(chǎng)所です
  • Chrome.extension.sendmessage APIは、バックグラウンドページからのメッセージを送信するために使用されます。私たちの場(chǎng)合、それを使用して、設(shè)定ページから背景ページにトークンを送信します。 設(shè)定の冒険はこれが完了するとすぐに行われるので、ユーザーの親しみやすさを向上させるために、タブを自動(dòng)的に閉じることもできます。
  • settings.jsのinit関數(shù)の最初の部分をこれに更新します:
このロジックを使用して、認(rèn)証が完了したときにTrelloライブラリに拡張機(jī)能にメッセージを送信するように指示し、メッセージが受信されたという返されたメッセージ(関數(shù)(データ)の部分)が受信されるとすぐに、閉じます?,F(xiàn)在のタブ。

次に、背景ページを扱いましょう。まず、background.htmlの內(nèi)容をこれに変更します:

アプリキー、ロジックに使用するバックグラウンドスクリプト、および以前のようにTrelloクライアントをロードします。明らかに、私たちもjQueryが必要です - それはTrelloの依存関係です。

次に、スクリプト/background.jsを変更してください

<span>// Check if page load is a redirect back from the auth procedure
</span>    <span>if (HashSearch.keyExists('token')) {
</span>        <span>Trello.authorize(
</span>            <span>{
</span>                <span>name: "Trello Helper Extension",
</span>                <span>expiration: "never",
</span>                <span>interactive: false,
</span>                <span>scope: {read: true, write: false},
</span>                <span>success: function () {
</span>                    chrome<span>.extension.sendMessage({
</span>                        <span>command: 'saveToken',
</span>                        <span>token: localStorage.getItem('trello_token')
</span>                    <span>}, function(data) {
</span>                        chrome<span>.tabs.getCurrent(function (tab) {
</span>                            chrome<span>.tabs.remove(tab.id)
</span>                        <span>});
</span>                    <span>});
</span>                <span>},
</span>                <span>error: function () {
</span>                    <span>alert("Failed to authorize with Trello.")
</span>                <span>}
</span>            <span>});
</span>    <span>}</span>
これは、[設(shè)定]ページからメッセージを受信する部分です。リクエストからトークンをつかみ、將來(lái)の使用のためにLocalStorageに保存します。コマンドを備えたオブジェクトフォーメーションをメインキーとして使用します。なぜなら、後で他のコマンドをページに送信するつもりであるためです。

auto-settings

Savetokenコマンドの上に、別のブロックを見(jiàn)てみましょう:

<span>// Check if page load is a redirect back from the auth procedure
</span>    <span>if (HashSearch.keyExists('token')) {
</span>        <span>Trello.authorize(
</span>            <span>{
</span>                <span>name: "Trello Helper Extension",
</span>                <span>expiration: "never",
</span>                <span>interactive: false,
</span>                <span>scope: {read: true, write: false},
</span>                <span>success: function () {
</span>                    chrome<span>.extension.sendMessage({
</span>                        <span>command: 'saveToken',
</span>                        <span>token: localStorage.getItem('trello_token')
</span>                    <span>}, function(data) {
</span>                        chrome<span>.tabs.getCurrent(function (tab) {
</span>                            chrome<span>.tabs.remove(tab.id)
</span>                        <span>});
</span>                    <span>});
</span>                <span>},
</span>                <span>error: function () {
</span>                    <span>alert("Failed to authorize with Trello.")
</span>                <span>}
</span>            <span>});
</span>    <span>}</span>
特定のコマンドを発行せず、ユーザーがTrelloでまだ認(rèn)証されていない場(chǎng)合は、新しいタブで[設(shè)定]ページを開(kāi)きます。これにより、ブラウザでTrelloボードが訪問(wèn)されるとすぐに、拡張機(jī)能の最初のインストール後すぐに設(shè)定ページが開(kāi)かれるようになります。

メニューオプションの追加

TrelloのUIは、カスタマイズに非常に友好的ではありません。リストには、データの屬性またはあらゆる種類のリンクなど、要素にIDがありませんが、カードはありません。右上隅のリストオプションボタンをクリックすると生成されるコンテキストメニューは、呼び出されるたびにすべてゼロから再構(gòu)築されます(多くのことが多すぎますか?)。また、UIの他のほとんどすべてのメニューをクリックすると召喚されました。さらに悪いことに、リストのポップオーバーメニューを呼び出すと、メニュー自體に呼び出されたリストの識(shí)別子がないため、そのコンテキストについてはわかりません。 Trello APIそれについては、エクスポートのためにカードを取得します。これが、続くものがひどい多くの魚のようなハッカーのように見(jiàn)えるかもしれない理由ですが、それは、まあそうだからです。

[コンテキスト]メニューにメニューオプションを追加するには、main.jsコンテンツスクリプトを編集する必要があります。これをこれに変えてください:

var popover = $( "。pop-over");から始めて、ポップオーバーオブジェクトを保持するように変數(shù)を設(shè)定します。次に、リストのメニューボタンがクリックされたとき(.list-header-menu-icon)、ポップオーバーが表示されているかどうかを常に監(jiān)視する間隔を召喚します。目に見(jiàn)えるようになると、チェックの停止とメニューオプションがすべてのオプションの下部に追加され、特に殘りのように見(jiàn)えるように作成されているため、フィットします。最後に、クリックイベントハンドラーがこのオプションにバインドされているため、オプションがクリックされたら、「エクスポート」を呼び出します。しかし..輸出するために必要なものをどうやって知るのですか?また、どの形式でエクスポートしていますか? リストIDを見(jiàn)つける

<span><span><!doctype html></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="scripts/key.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="scripts/background.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="lib/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="lib/trello_client.js"</span>></span><span><span></script</span>></span></span>
前に言ったように、TrelloのUIは開(kāi)発者ではないことで有名です。 DOM要素を備えたリストIDを提供していないため、それらを見(jiàn)つけるのは簡(jiǎn)単ではありません。なぜリストIDが必要なのですか? Trello APIをクエリしてカードを取得するために、それらをエクスポートできるように - 私たちはすでに大規(guī)模なボード上のその不安定性のためにUIを解析するつもりはないが、APIに依存するつもりです。

幸いなことに、個(gè)々のリストでカードを検査すると、実際にはHREF屬性があり、カードIDが含まれていることがわかります。カードIDを知ることで、Trelloの情報(bào)を照會(huì)し、親リストのIDを取得できます。しかし..ポップオーバーメニューがリストに添付されていない場(chǎng)合、クリックしたリストをどのように見(jiàn)つけますか?出會(huì)った最初のカードをつかむことはできません。それはあまりにもランダムになります。

メニューボタンがクリックされたときにjQueryによって発射されたイベントを使用できます。これは重要です! [エクスポート]オプションをクリックする代わりに、メニューの元のクリックボタンを使用します。これは、元のボタンがエクスポートに関心のあるリストにバインドされている間、スポークされる実際のメニューはそうではないので、そのため、どのリストを扱っているかを見(jiàn)つけることをほぼ不可能にします。 //上記のコードの//エクスポートリストのコメントの代わりに、これを追加します:

<span>// Check if page load is a redirect back from the auth procedure
</span>    <span>if (HashSearch.keyExists('token')) {
</span>        <span>Trello.authorize(
</span>            <span>{
</span>                <span>name: "Trello Helper Extension",
</span>                <span>expiration: "never",
</span>                <span>interactive: false,
</span>                <span>scope: {read: true, write: false},
</span>                <span>success: function () {
</span>                    chrome<span>.extension.sendMessage({
</span>                        <span>command: 'saveToken',
</span>                        <span>token: localStorage.getItem('trello_token')
</span>                    <span>}, function(data) {
</span>                        chrome<span>.tabs.getCurrent(function (tab) {
</span>                            chrome<span>.tabs.remove(tab.id)
</span>                        <span>});
</span>                    <span>});
</span>                <span>},
</span>                <span>error: function () {
</span>                    <span>alert("Failed to authorize with Trello.")
</span>                <span>}
</span>            <span>});
</span>    <span>}</span>

次に、関數(shù)を作成します:

<span><span><!doctype html></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="scripts/key.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="scripts/background.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="lib/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="lib/trello_client.js"</span>></span><span><span></script</span>></span></span>

最後に、findFirstCardid関數(shù)を作成します:

chrome<span>.extension.onMessage.addListener(
</span>    <span>function (request<span>, sender, sendResponse</span>) {
</span>        chrome<span>.pageAction.show(sender.tab.id);
</span>
        <span>// Now we have a token saved locally, as fetched from the settings page after authorization.
</span>        <span>if (request.command == 'saveToken') {
</span>            <span>localStorage.setItem('trello_token', request.token);
</span>            <span>sendResponse();
</span>            <span>return true;
</span>        <span>}
</span>
    <span>});</span>

イベントのターゲット(リスト)の祖父母を取得し、その中に最初のカードタイトルを見(jiàn)つけます。タイトルには、この形狀のhrefが含まれています:

Trello Chrome拡張機(jī)能の構(gòu)築方法 - リストのエクスポート

タイトルが見(jiàn)つからなかった場(chǎng)合、リストをエクスポートできないことをユーザーに警告します。それ以外の場(chǎng)合は、カードのIDを抽出して返します

エクスポート機(jī)能がカードIDを持っているので、それを使用してリストIDを見(jiàn)つけることができます。 APIドキュメントを見(jiàn)ると、URLカード/{{{id}}を使用して必要なものを取得できます。 Trelloを返すように依頼するデータの量を最小限に抑えるために、Fields Paramを使用してクエリをidlistプロパティのみに制限することもできます。 background.js。

に新しいコマンドを追加しましょう

<span>if (!request.command && !localStorage.getItem('trello_token')) {
</span>            chrome<span>.tabs.create({url: chrome.extension.getURL('settings/index.html')});
</span>            <span>sendResponse();
</span>            <span>return true;
</span>        <span>}</span>
Trelloinit関數(shù)も定義する必要があります。これは、Trelloと対話するコマンドが呼び出される前に毎回呼び出すことができるため、トークンとキーが正しく設(shè)定されており、リクエストが認(rèn)証されていることを100%確信しています。

リストIDを正常に取得するようになりました。
chrome<span>.extension.sendMessage({}, function (response) {
</span>    <span>var readyStateCheckInterval = setInterval(function () {
</span>        <span>if (document.readyState === "complete") {
</span>            <span>clearInterval(readyStateCheckInterval);
</span>
            <span>var popover = $(".pop-over");
</span>            <span>$('.list-header-menu-icon').click(function(event) {
</span>                <span>var popover_summoned_interval = setInterval(function () {
</span>                    <span>if ($(popover).is(':visible')) {
</span>                        <span>clearInterval(popover_summoned_interval);
</span>                        <span>$(".pop-over .content").append('<hr><ul > <li><a  href="#">Export This List</a></li> </ul>');
</span>                        <span>$(".js-export-list").click(function(e){
</span>                            <span>// EXPORT LIST
</span>                        <span>});
</span>                    <span>}
</span>                <span>}, 50);
</span>            <span>});
</span>        <span>}
</span>    <span>}, 10);
</span><span>});</span>

リストカードの取得

メイン.jsに戻って、さらに數(shù)行のコードを使用して、次のように見(jiàn)えるエクスポート機(jī)能があります。

「Humanese」では、これは次のとおりです

最初のカードのIDを取得します
<span>exportList(event);</span>

IDが見(jiàn)つからない場(chǎng)合、リストは明らかに空です

    IDが見(jiàn)つかった場(chǎng)合は、背景ページを呼び出して、Trello APIへの呼び出しを介してリストIDを指示するように指示してください
  • リストIDが問(wèn)題ない場(chǎng)合は、リストのカードを取得するバックグラウンドページに別の呼び出しを行い、完了した場(chǎng)合、結(jié)果をコンソールに出力します。
  • バックグラウンドページに戻ると、APIドキュメントに従って、getListCardsコマンドを構(gòu)築できるようになりました。
  • 拡張機(jī)能をリロードしてテストすると、リストにエクスポートオプションが表示されるだけでなく、オプションをクリックした後にコンソールでエクスポートしているデータも表示できるはずです。
  • エクスポートフォーマット
  • このチュートリアルはそのように少し長(zhǎng)く実行されているため、今のところ、エクスポートに簡(jiǎn)略化されたアプローチを取ります。ユーザーにTXTまたはJSONのいずれかの選択を提供します。テキスト出力は、今のところ、次のようになります

JSONはTrelloから受け取ったように満足します。

Trello Chrome拡張機(jī)能の構(gòu)築方法 - リストのエクスポート

JSONデータは明らかにはるかに多くの情報(bào)を生成しますが、編集するのもはるかに簡(jiǎn)単です。JSONエディターオンラインまたはJSONからCSVへの任意のIDEまたはツールに貼り付けてください。 >

エクスポートするには、データを貼り付けるモーダルウィンドウが必要です。 ここでの魅力的なオプションは、設(shè)定ページに既に使用しており、獨(dú)自のモーダルポップアップコンポーネントを備えているため、Foundation Frameworkですが、FoundationのCSSもTrelloのCSSも適切に名前が付けられておらず、Trelloの原因の原因にFoundationのCSSを含めています。また、jQueryが事前に組み込まれていますが、繰り返しますが、ダイアログを起動(dòng)して実行するには、JQuery UIを含める必要があります。それでも十分ではありません。Chrome拡張機(jī)能は、相対URLを介したCSSのロード畫像をサポートしていません( )JQUERY UIが使用する構(gòu)文 - jQuery UIのCSSを書き換えてローカル拡張URLを使用するか、Base64エンコード畫像を使用する必要があります。アプローチ。

代わりに、私たちは自分のポップアップを作成し、Trelloの既存のスタイルのいくつかを使用して、途中ですべての競(jìng)合を無(wú)視します。ここに最終コードを入れて、それを説明します。 lib/trellohelper/js/exportpopup.jsを作成し、次の內(nèi)容を付けてください

メインスクリプトの外側(cè)にポップアップロジックを使用することを選択したため、後で簡(jiǎn)単に改善できます。また、「オブジェクト指向」のアプローチを選択しました。 INIT、表示、非表示の3つの方法で、新しいTrelloExportPopup「クラス」を定義します。 INITは、コンテンツスクリプトがロードされるとすぐに呼び出されます。これは、ポップアップを構(gòu)築し、適切なイベントリスナーを添付し、すべてをTrelloボードのHTMLに追加する方法です。ポップアップのヘッダーのボタンに.buttonクラスを追加すると、現(xiàn)在のTrello UIと一致する外観が確実に得られます。ここで私が試している外観は、一種の「タブ付き」インターフェイスです。テキストとテキストエクスポートショーをクリックして、JSONとJSONをクリックしてください。
<span>// Check if page load is a redirect back from the auth procedure
</span>    <span>if (HashSearch.keyExists('token')) {
</span>        <span>Trello.authorize(
</span>            <span>{
</span>                <span>name: "Trello Helper Extension",
</span>                <span>expiration: "never",
</span>                <span>interactive: false,
</span>                <span>scope: {read: true, write: false},
</span>                <span>success: function () {
</span>                    chrome<span>.extension.sendMessage({
</span>                        <span>command: 'saveToken',
</span>                        <span>token: localStorage.getItem('trello_token')
</span>                    <span>}, function(data) {
</span>                        chrome<span>.tabs.getCurrent(function (tab) {
</span>                            chrome<span>.tabs.remove(tab.id)
</span>                        <span>});
</span>                    <span>});
</span>                <span>},
</span>                <span>error: function () {
</span>                    <span>alert("Failed to authorize with Trello.")
</span>                <span>}
</span>            <span>});
</span>    <span>}</span>
非表示メソッドは、ページのどこかに目に見(jiàn)える形で存在する場(chǎng)合にのみポップアップを非表示にします。 showメソッドは、最初の(json)タブビューを自動(dòng)的にアクティブにし、エクスポート領(lǐng)域に必要なデータを?qū)毪筏蓼埂?JSON領(lǐng)域は単純なStringifyダンプです。JSONデータの出力は文字列形式ですが、テキスト領(lǐng)域は今のところ、カードの各カードのタイトルと説明を、カード間に2つの空の行で出力します。 「コピーペーストフレンドリー」。

今やらなければならないのは、少しスタイルです。これは、LIB/TrelloHelper/CSS/ExportPopup.cssの內(nèi)容です

これにより、ポップアップが中央にあり、ネイティブトレロポップアップのように見(jiàn)えることを確認(rèn)します。また、輸出コンテンツがポップアップの殘りのスペースを埋めることを示すTextareaが確認(rèn)されます。次に、これらのファイルをコンテンツスクリプトに含めてみましょう:

<span>// Check if page load is a redirect back from the auth procedure
</span>    <span>if (HashSearch.keyExists('token')) {
</span>        <span>Trello.authorize(
</span>            <span>{
</span>                <span>name: "Trello Helper Extension",
</span>                <span>expiration: "never",
</span>                <span>interactive: false,
</span>                <span>scope: {read: true, write: false},
</span>                <span>success: function () {
</span>                    chrome<span>.extension.sendMessage({
</span>                        <span>command: 'saveToken',
</span>                        <span>token: localStorage.getItem('trello_token')
</span>                    <span>}, function(data) {
</span>                        chrome<span>.tabs.getCurrent(function (tab) {
</span>                            chrome<span>.tabs.remove(tab.id)
</span>                        <span>});
</span>                    <span>});
</span>                <span>},
</span>                <span>error: function () {
</span>                    <span>alert("Failed to authorize with Trello.")
</span>                <span>}
</span>            <span>});
</span>    <span>}</span>

最後に、新しいポップアップロジックを使用してmain.jsをスパイスしましょう。 main.jsの最終バージョンは次のようになります:

<span><span><!doctype html></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="scripts/key.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="scripts/background.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="lib/jquery-2.1.1.min.js"</span>></span><span><span></script</span>></span>
</span><span><span><span><script</span> type<span>="text/javascript"</span> src<span>="lib/trello_client.js"</span>></span><span><span></script</span>></span></span>

最初にtrelloexportpopupを「インスタンス化」するため、コードでそのメソッドを使用できます。次に、クリックイベントリスナーをメニューにバインドする前に、TEP.INIT()でポップアップを初期化するため、必要になる前にDOMで準(zhǔn)備ができています。エクスポートリンクがクリックされた後、以前と同じようにエクスポートリストを呼び出します。 エクスポートリストの関數(shù)では、別のリストのメニューを閲覧しているときに1つが開(kāi)いている場(chǎng)合に、最初にTEP.hide()でポップアップを非表示にします。次に、バックグラウンドページからカードを取得したら、表示します。 Tep.show(データ)を使用したエクスポートポップアップ。それでおしまい!

拡張機(jī)能をリロードして、trelloページを更新すると、機(jī)能するエクスポートオプションが必要です!

Trello Chrome拡張機(jī)能の構(gòu)築方法 - リストのエクスポートバグと改善

意図的にいくつかのバグと警告を殘しました。十分な関心があれば、將來(lái)の投稿の人々に対処し、フェイルセーフティの拡張機(jī)能を微調(diào)整して最適化します。まだ可能ないくつかの改善點(diǎn)は次のとおりです

キャッシュ

將來(lái)の用途のために物事をスピードアップするために、LocalStorageを使用して、リストがどのボードに屬しているかを覚えておくことができます。リストをボードからボードに移動(dòng)すると壊れる可能性があるため、この機(jī)能を慎重に実裝してください。リストの動(dòng)きに別のリスナーを追加してください。

重複したエクスポートオプションスポーン

メニューが開(kāi)いている間にメニューアイコンをマニアックにクリックすると、メニューの下部に新しい「エクスポート」オプションを追加し続けます。 OptionがすでにそこにあるかどうかをチェックするFailSafeを?qū)g裝する必要があります。

initの問(wèn)題

何百ものボードとメンバーがいる巨大なボードでは、TrelloのUIはひどく遅くなります。これにより、ドキュメント対応イベントの不火が発生し、リスナーにバインドするU(xiǎn)I要素がある前に、スクリプトのinit部分が実行されます。そのため、メニューにはエクスポートオプションがなく、更新されるまで取得できません。

ボードの変更

ボードの変更は現(xiàn)在のUIを殺し、新しいボードのために再構(gòu)築します。ただし、問(wèn)題は、イベントリスナーの要素も殺されることです。そのため、メニューはエクスポートオプションを召喚しなくなりました。上記の問(wèn)題と同様に、すべてが機(jī)能するために、再生化を船上の変更にトリガーする必要があります。

inifinite loop

メニュークリック後にポップオーバーがレンダリングされない天文學(xué)的に小さなチャンスがあります。TrelloがUIで何かを変更したり、クラスを変更したり、ある種のUIバグを持っているだけかもしれません??梢曅预颔氅`プチェックすることは無(wú)限になり、タブのプロセスが殺されるまで膨大な量のCPUリソースを占有します。それに対する保護(hù)手段はいいでしょう。

結(jié)論

この短いシリーズでは、Trello用のシンプルなChrome拡張機(jī)能を構(gòu)築しました。これにより、特定のリストからカードをJSONまたはTXTリストとしてエクスポートできます。この例を使用して構(gòu)築し、獨(dú)自のTrello拡張機(jī)能を作成します。達(dá)成できることは、想像力(およびTreloのAPIが提供する機(jī)能)によってのみ制限されています。認(rèn)証はすでにあなたのために解決されており、ロジックテンプレートが整っています - コーディングを開(kāi)始してください!

このチュートリアルシリーズで書いたコードは、githubで入手できます。

このチュートリアルの継続を見(jiàn)たいですか?その他の機(jī)能が実裝されていますか?お知らせ下さい!フィードバックは高く評(píng)価されています!

Trelloリストのエクスポート

に関するよくある質(zhì)問(wèn)(FAQ)

TRELLOリストをExcelにエクスポートするにはどうすればよいですか?はい、「Trelloのエクスポート」Chrome Extensionを使用してTrelloリストをエクスポートするとき、すべてラベルを含むTrelloリストの詳細(xì)がエクスポートされます。これは、Trelloリストをエクスポートした後でも、ラベルを追跡できることを意味します。

以上がTrello Chrome拡張機(jī)能の構(gòu)築方法 - リストのエクスポートの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語(yǔ)であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開(kāi)発に使用されますが、JavaScriptは主にWebページ開(kāi)発に使用されます。

JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時(shí)間を処理する場(chǎng)合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼?。これらの重要なポイントを?xí)得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開(kāi)発者向けの包括的な比較 JavaScript vs. Java:開(kāi)発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? Jun 26, 2025 am 12:54 AM

JavaScriptアプリケーションがゆっくりとロードされ、パフォーマンスが低い場(chǎng)合、問(wèn)題はペイロードが大きすぎることです。ソリューションには、次のものが含まれます。1。コード分割(コードスプリッティング)を使用し、React.lazy()またはビルドツールを介して大きなバンドルを複數(shù)の小さなファイルに分割し、最初のダウンロードを減らすために必要に応じてロードします。 2。未使用のコード(Treeshaking)を削除し、ES6モジュールメカニズムを使用して「デッドコード」をクリアして、導(dǎo)入されたライブラリがこの機(jī)能をサポートしていることを確認(rèn)します。 3.リソースファイルを圧縮してマージし、GZIP/BrotliとTerserがJSを圧縮できるようにし、ファイルを合理的にマージし、靜的リソースを最適化します。 4.頑丈な依存関係を交換し、day.jsやフェッチなどの軽量ライブラリを選択します

JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS JavaScriptモジュールの決定的なJSラウンドアップ:ESモジュールvs CommonJS Jul 02, 2025 am 01:28 AM

ESモジュールとCommonJSの主な違いは、ロード方法と使用シナリオです。 1.CommonJSは同期的にロードされ、node.jsサーバー側(cè)環(huán)境に適しています。 2.ESモジュールは、ブラウザなどのネットワーク環(huán)境に適した非同期にロードされています。 3。Syntax、ESモジュールはインポート/エクスポートを使用し、トップレベルのスコープに配置する必要がありますが、CommonJSは実行時(shí)に動(dòng)的に呼ばれるrequire/Module.Exportsを使用します。 4.CommonJSは、Expressなどのnode.jsおよびLibrariesの古いバージョンで広く使用されていますが、ESモジュールは最新のフロントエンドフレームワークとnode.jsv14に適しています。 5.混合することはできますが、簡(jiǎn)単に問(wèn)題を引き起こす可能性があります。

See all articles