整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          在 JAVASCRIPT 中創建 HTML 元素...

          能在 JavaScript 中創建一個 HTML 元素嗎? 答案是肯定的,你可以在 JavaScript 中創建一個元素讓我們看看如何?

          如果你想在 JavaScript 中創建一個 div 元素——

          要在 JavaScript 中創建新元素,我們使用 document.createElement('div'),而不是 div,您可以分配任何 html 標簽,例如 p、h1、h2、h3 等,如果您分配 p 標簽,它將創建一個 p 標簽。

          現在,如果你想給它上一堂課,你可以做到——

          為了給我們的新 div 一個類,我們使用 variablename.className = ‘class_name’ ,如上所示。

          現在你也可以給它 id —

          為了給 newdiv 一個 id,我們的代碼是 variablename.id = ‘id_name’;

          現在讓我們看看我們的輸出

          現在,從上面的代碼中,我創建了一個帶有類容器和 id newElement 的 div 元素。

          還有另一種方法可以在標簽上設置 class 、 id 、 title 、 name ,讓我們來看看。

          在這里,我定義了 setAttribute() 并在括號內首先定義了標題,然后定義了標題的名稱。 除了標題,您可以指定類、id 或任何名稱

          現在我們來看看我們的輸出

          您可以清楚地看到,在 div 標簽內,我們的代碼添加了標題,即“新 div”。

          現在如果你想在 div 標簽內添加內容怎么辦? 例如,在我的 div 元素中,我想添加 Hello medium reader! 我怎樣才能做到這一點? 下面來看看吧。

          在上面的代碼中,我使用 document.createTextNode() 將我的文本分配給變量內容,因此 TextNode 用于為我們的元素提供文本。

          所以,我們已經成功地向我們的 div 元素添加了一個文本。

          現在,最重要的是,如果您想將內容插入現有的 html 代碼以便在瀏覽器中看到它,您可以通過 insertBefore(newNode, referenceNode) 來完成它的作用是在參考節點之前插入您的節點。

          所以在這里我從上面的 html 代碼中創建了一個帶有類容器和 h1 標簽的 div 元素。

          現在,我定義了一個名為 maindiv 的變量,并將其分配給具有類容器的 div 元素,并定義了一個變量 h1 并為其分配了 h1 標記。

          現在,為了插入我們的節點,我使用了 inserbefore(newNode, referenceNode) ,其中 newNode 是必須插入的節點,即我們的 newdiv ,參考節點是要在其之前插入 newNode 的節點,即我們的 h1 標記。

          所以從上面的輸出你可以看到我們已經成功地在瀏覽器中顯示了我們的 div 內容。

          JavaScript 是一種非常有效的語言,你可以在 JavaScritp 中做很多事情,這些只是它的基礎。


          謝謝你

          JSS是CSS的創作工具,它允許你使用JavaScript以聲明,無沖突和可重用的方式描述樣式。它可以在瀏覽器,服務器端或在構建時在Node中編譯。JSS與框架無關。它由多個包組成:核心部分,插件以及框架集成等。



          Github

          https://github.com/cssinjs/jss stars:5.1k


          快速開始

          如果你已經對使用JSS感興趣,可以使用在線代碼編輯器。在CodeSandbox(一個非常實用的在線編輯器,可以用來學習各種編程技能)上嘗試Hello World示例。以下是三種不同框架下的用法(代碼圖片生成自carbon網站):

          • JSS


          • React-JSS


          • Styled-JSS


          特性

          • 真實的CSS

          JSS生成實際的CSS,而不是內聯樣式。它支持每個現有的CSS功能。CSS規則只創建一次,并使用其類名與元素重復使用,與內聯樣式相反。此外,當DOM元素更新時,將應用先前創建的CSS規則。

          • 無沖突選擇器

          JSS默認生成唯一的類名。它允許避免典型的CSS問題,默認情況下一切都是全局的。它完全消除了命名約定的需要。

          • 代碼重用

          使用JavaScript作為宿主語言使我們有機會以常規CSS無法實現的方式重用CSS規則。您可以利用JavaScript模塊,變量,函數,數學運算等。如果做得好,它仍然可以完全聲明。

          • 易于拆卸和修改

          CSS規則的明確使用允許您跟蹤消費者并確定是否可以安全地刪除或修改它。

          • 動態Style

          使用JavaScript函數和Observable可以在瀏覽器中動態生成樣式,使有機會訪問應用程序狀態,瀏覽器API或遠程數據以進行樣式設置。你不僅可以定義一次樣式,還可以在任何時間點以有效的方式更新樣式。

          • 用戶控制的動畫

          JSS可以高效地處理CSS更新,可以使用它創建復雜的動畫。使用函數值,Observables并將它們與CSS過渡相結合,可以為用戶控制的動畫提供最大的性能。對于預定義的動畫,使用@keyframes和transition更好,因為它們將完全取消阻止JavaScript線程。

          • 關鍵的CSS

          要優化第一次繪制的時間,你可以使用服務器端渲染并提取關鍵CSS。可以將CSS的呈現與HTML的呈現結合起來,這樣就不會生成未使用的CSS。它將導致在服務器端呈現期間提取的最小關鍵CSS,并允許內聯它。

          • 插件

          JSS核心實現了基于插件的架構。它允許您創建可以實現自定義語法或其他強大功能的自定義插件。JSS有許多官方插件,可以單獨安裝或使用默認預設。社區插件的一個很好的例子是jss-rtl。

          • Expressive 語法

          由于各種插件,JSS允許您使用現有的全局類名來嵌套,全局選擇器和組合。例如,允許您以比CSS更可讀的方式表達屬性。如果要直接從瀏覽器開發工具復制粘貼樣式,也可以使用模板字符串。jss-plugin-expandbox-shadow

          • 完全隔離

          另一個有用的插件示例是,它允許您完全隔離元素與全局級聯規則,并可能覆蓋不需要的屬性。在創建應該在第三方文檔內部呈現的窗口小部件時尤其有用。jss-plugin-isolate

          • React整合。

          React-JSS包提供了一些額外的功能:

          1. 動態主題 - 允許基于上下文的主題傳播和運行時更新。
          2. 關鍵CSS提取 - 僅提取渲染組件中的CSS。
          3. 延遲評估 - 樣式表在組件安裝時創建。
          4. 樣式表的靜態部分在所有元素之間共享。
          5. 使用props作為參數自動更新函數值和規則。
          • JavaScript構建管道

          CSS不需要額外的構建管道配置。無論你選擇構建JavaScript的工具是什么,它都可以與JSS一起使用。

          安裝使用

          yarn add jss
          

          yarn add jss-preset-default //使用默認設置
          

          import jss from 'jss'
          import preset from 'jss-preset-default'
          jss.setup(preset())
          // 創造你的style.
          const style = {
           myButton: {
           color: 'green'
           }
          }
          //編譯樣式,應用插件。
          const sheet = jss.createStyleSheet(style)
          //如果要在客戶端上呈現,請將其插入DOM。
          sheet.attach()
          //如果要渲染服務器端,請獲取CSS文本。
          sheet.toString()
          

          • 使用自定義插件進行設置
          import jss from 'jss'
          import camelCase from 'jss-plugin-camel-case'
          import somePlugin from 'jss-some-plugin'
          //使用插件。
          jss.use(camelCase(), somePlugin())
          // Create your style.
          const style = {
           myButton: {
           color: 'green'
           }
          }
          //編譯樣式,應用插件。
          const sheet = jss.createStyleSheet(style)
          // 如果要在客戶端上呈現,請將其插入DOM
          sheet.attach()
          // 如果要渲染服務器端,請獲取CSS文本。
          sheet.toString()
          

          • 指定DOM插入點
          <head>
           <title>JSS</title>
           <!-- 自定義插入點 -->
          </head>
          

          import jss from 'jss'
          jss.setup({insertionPoint: 'custom-insertion-point'})
          

          <head>
           <title>JSS in body</title>
          </head>
          <body>
           <div id="insertion-point">
           這可能是你選擇的任何DOM節點,可以作為插入點。
           </div>
          </body
          

          import jss from 'jss'
          jss.setup({
           insertionPoint: document.getElementById('insertion-point')
          })
          

          簡單案例

          通過兩張圖片來體驗:




          總結

          JSS的功能是十分強大的,不僅僅讓寫css的方式放到了JavaScript,這樣對更加喜愛編寫javascript的小伙伴來說是值得嘗試的,而且還支持服務器端渲染等更多高級的特性,前端技術百花齊放,但目前仍然不變的是掌握JavaScript者得天下的時代!

          者 | Mateusz Iwaniuk

          譯者 | 明明如月,責編 | 夕顏

          出品 | CSDN(ID:CSDNnews)

          文章配套代碼: https://github.com/iwaniukooo11/email-sender

          現在,即使是創建最基本的網站,程序員也必須使用現代的功能和技術。甚至像為你的朋友創建簡單的投資組合這樣的基本項目也可能涉及到一些問題,比如從聯系人表單接收數據。有很多方法可以讀取這些數據。你可以將表單與數據庫連接起來,然后從數據庫中讀取傳入的消息來實現功能,但這樣做會給不懂技術的客戶造成困難。

          你為什么不通過發送電子郵件傳輸信息?

          不使用數據庫就能接收到傳入的消息,絕對是最佳選擇,也是最方便用戶的選擇。但問題來了—如何實現呢?你可能認為需要使用某種后端語言。

          實際上,你不必使用任何如 php 或 python 這種后端語言,你甚至不需要用到 node.js!你需要的就是一個簡單的EmailJS 庫。

          本文將介紹下面兩個重要功能:

          • 配置 emailjs 帳戶

          • 使用 JS 發送電子郵件

          請注意,在我的項目中,我使用了 gulp 和 webpack,我在 src 文件夾存放源碼,dist 存放最終發布版本的代碼。

          我將分 5 個步驟向你展示如何從頭開始構建電子郵件發送器。

          步驟1-用 HTML 創建表單

          首先需要創建一個 HTML 表單。你不必放置像 required 或 max 這種驗證屬性,因為稍后,preventDefault 函數將在你的提交事件上運行,它會讓這些屬性的處理失效。

          表單中最重要的是為每個輸入放置 name 屬性,后面會用到。

          我的非常簡單的表單是這樣的:

          src/html/index.html

           <form class="form"> <input name='name' type="text" placeholder="Your name..." class="form__input" /> <input name='topic' type="text" placeholder="Topic..." class="form__input" /> <textarea name='message' type="text" placeholder="Your Message..." class="form__input" ></textarea>

          <input type="submit" value="send" class="form__input form__input--button"> </form>

          步驟2-注冊成為 email 用戶

          要配置你的電子郵件,你必須注冊電子郵件服務。別擔心—使用這個網站非常方便和省時。

          登入后,系統會詢問你的電子郵件服務,它位于個人電子郵件服務區(personal email service)。在我的例子中,我選擇了 gmail。

          然后,你需要連接你的 gmail 帳戶。這將用來發送電子郵件給你客戶。例如,如果你關聯了 xyz@gmail.com 賬戶,你后續發送的郵件都將從這個郵箱發出。所以不要擔心“ Send email on your behalf” 這個授權信息—這正是你需要的!

          連接完 gmail 賬戶后,點擊添加服務(add service)按鈕。

          步驟3-創建郵件模板

          如果你已經成功連接了你的 gmail 賬戶,你現在應該在信息中心中。現在需要創建電子郵件模板了。

          切換到電子郵件模板卡,并單擊創建一個新的模板(create a new template)。界面非常友好,所以創建模板不會有任何問題。

          你可以選擇模板的名稱和 ID。我稱之為“我的神奇模板(my_amazing_template)”。

          接下來,你必須指定郵件的內容。

          模板的變量值來自 input 中的 `name` 屬性。你已將變量插入`{{{}}}`符號中。

          不要忘記在“收件人”部分 (右側) 添加電子郵件地址。你的電子郵件將被發送到該電子郵件地址上。截圖中的收件人郵箱是我自己的公司郵箱。

          這是我的簡單模板,它使用來自 HTML 表單里的 3 個變量。我還指定了接收電子郵件的主題。

          步驟4-保存 API 密鑰

          這部分沒什么特別的。Emailjs 共享授權 API 密鑰,將在發送電子郵件時使用。當然,放這些鑰匙最好的地方是`.env` 配置。但是因為我使用的是簡單的靜態文件,我不想使用服務器配置,所以我將它們保存在 apikeys 文件中,然后再將它們導入。

          你的 USER_ID 位于 Account > API Keys 菜單下。

          TEMPLATE_ID 位于模板的標題下面。

          這是我基于不存在的 keyssrc / js / apikeys. js 的示例配置.

          src/js/apikeys.js

          export default { USER_ID :'user_DPUd-rest-of-my-id', TEMPLATE_ID:'my_amazing_template'}

          如果需要將源碼發布到 GITHUB,不要忘記將 APIKEYS 文件添加到 .GITIGNORE文件中

          步驟5-發送電子郵件

          現在是該項目最后也是最重要的部分的了。現在我們必須使用 javascript 發送電子郵件。

          首先,你必須下載 emailjs 包。

          npm i emails-com

          然后,轉到 js 文件,導入庫和 apikeys。

          src/js/main.js

          import emailjs from 'emailjs-com'import apiKeys from './apikeys'

          現在是編寫發送電子郵件功能的時候了

          src/js/main.js

          const sendEmail = e => { e.preventDefault

          emailjs .sendForm('gmail', apiKeys.TEMPLATE_ID, e.target, apiKeys.USER_ID) .then( result => { console.log(result.text) }, error => { console.log(error.text) } )}

          sendForm 函數有4個參數:

          你的電子郵件的 ID,在這里:

          TEMPLATE_ID 來自 apikey 文件,

          事件對象來自你的表單提交

          USER_ID 來自 apikey 文件,

          最后,查找表單并添加提交事件監聽器:

          src/js/main.js

          const form = document.querySelector('.form')form.addEventListener('submit',sendEmail)

          正如我前面提到的,由于 `preventDefault` 函數,屬性驗證將無法工作。你必須使用 JS 自己進行驗證和清除輸入。

          以上就是全部內容,接下來讓我們測試一下。

          填寫頁面上的表單并發送。

          我收到電子郵件,內容正是根據我們的模板和表單數據渲染出來的。

          通過上圖可以看出,所有的變量的值都填充到了正確的位置上。

          總結

          通過本文的介紹你會發現用 JS 發送郵件并非難事。

          使用 emailjs,你可以簡單的方式發送電子郵件。

          我相信你未來的用戶會很高興收到來自他們網頁上表單填寫數據的t郵件,相信本文對你有幫助。

          這篇文章的配套代碼在這里: https://github.com/iwaniukooo11/email-sender

          原文鏈接:

          https://dev.to/iwaniukooo11/send-e-mails-directly-from-front-end-with-js-5d7d

          本文為CSDN翻譯文章,轉載請注明出處。

          ?我們想研發一個機器學習框架,6 個月后失敗了

          ?生產型機器學習已經沒那么困難了?

          ?視頻 | 你不知道的"開源"60年秘史

          ?GitHub標星10,000+,Apache項目ShardingSphere的開源之路

          ?阿里技術專家告訴你,如何畫出優秀的架構圖?

          ?加拿大API平臺如何做到30%為中國明星項目?創業老兵這樣說……


          主站蜘蛛池模板: 免费无码毛片一区二区APP| 国产主播一区二区三区| 中文字幕无码一区二区免费 | 国产精品女同一区二区久久| 国产乱码精品一区三上| 一区二区免费视频| 亚洲国产精品一区二区第四页| 亚洲视频一区在线| 国产一区二区三区在线2021| 无码精品人妻一区二区三区免费| 人妻体内射精一区二区三四| 国产精品毛片一区二区| 国产凸凹视频一区二区| 一本一道波多野结衣一区| 精品国产a∨无码一区二区三区| 一区二区三区福利| 亚洲一区二区三区无码影院| 精品一区二区三区影院在线午夜| 海角国精产品一区一区三区糖心| 无码免费一区二区三区免费播放| 日韩人妻不卡一区二区三区| 国产一区二区三区高清视频 | 无码精品一区二区三区在线| 亚洲日本一区二区一本一道 | 国产一区二区在线看| 亚洲国产一区二区三区| 国产一区二区不卡在线播放| 韩日午夜在线资源一区二区| 大伊香蕉精品一区视频在线| 亚洲国产成人久久一区久久| 成人乱码一区二区三区av| 99久久精品国产免看国产一区| 无码人妻精品一区二区蜜桃AV| 日韩人妻无码免费视频一区二区三区 | av在线亚洲欧洲日产一区二区| 亚洲国产精品一区二区九九 | 本免费AV无码专区一区| 中文人妻av高清一区二区| 国产精品毛片VA一区二区三区| 色一乱一伦一图一区二区精品| 亚洲AV无码一区二区三区人|