iT邦幫忙

0

關於網頁的後端的 user是無能為力嗎???(內有舉例)

  • 分享至 

  • xImage

例如說IT幫發文 都會要增加標籤
我想知道
有沒有辦法用js來幫我現在正在撰寫的文章增加標籤

我觀察了一下 是新增一個 具體如下:

<li class="select2-selection__choice" title="javascript"><span class="select2-selection__choice__remove" role="presentation">×</span>標籤內容</li>

那我合理推測 我用js幫網頁加入一個標籤
視同我用js幫一個input新增的text
傳送出去應該會有效果

然而我實際測試了這樣的手段 卻發現是無效的

請問:
1.是否是因為後端判斷有其他機制?
2.通常要做這樣子的判斷 不就是看頁面上dom元素的
然後把它當作資料一部分送出嗎?
那怎麼這樣子的操作是行不通的呢?
3.呈上題 那這種後端的判斷 user是無能為力的嗎?
4.如上 所以it幫文章加標籤只能手動或是用js以外的來完成嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
bill9222729
iT邦新手 5 級 ‧ 2022-12-28 05:04:41
最佳解答

你要的是這種嗎?
js的code我是從postman裡面生成複製出來的
Yes

然後接下來一個一個回答你的問題:

  1. 通常不是,這邊看起來是純前端
  2. 不一定喔,現在比較主流的作法畫面上的DOM只是讓你看而已,真正的表單資料是js在處理的。舉例來說:
    假設我今天設一個變數為你要送出的表單資料
    const form = {}
    那可能你在按那個+tag的按鈕的時候他就會做兩件事情
    第一件事情是在畫面上生成一個你加的tag給你看
    第二件事情就是在剛剛那個form的變數裡面加一個你剛剛塞的tag的值進去
    這樣最後在submit的時候只要把form的資料送出就好
    跟你畫面上顯示什麼沒有關係喔
  3. 可以啊,方法很多,像是我直接仿照他的資料格式塞給他們後端這樣就是一個最粗暴的方法(詳見影片)
  4. 同上,如果我對你的疑問理解有錯誤再留言給我吧
akajoke iT邦新手 5 級 ‧ 2022-12-31 21:09:56 檢舉

天啊 好多前輩回應 您這樓好神 我要慢慢研究
先謝謝你 我先慢慢吸收...

0
japhenchen
iT邦超人 1 級 ‧ 2022-12-27 13:12:19

DOMm也只是一個結構化的代碼,可以讓你用各式各樣的parser 去讀寫,我也很常用jquery或vue這類的js framework+ajax,對頁面做即時增修資料,而不是有新資料就得由後端去產生一個完整的頁面,才能替換當前頁面的內容

1
froce
iT邦大師 1 級 ‧ 2022-12-27 13:26:37

各網頁會有各網頁的判斷機制,加上用的lib,有時候你看到的不代表那是真正輸入的地方。
你問的tag的部分我在ithelp的原碼沒找到,但應該是有個隱藏的select,id叫tags的在控制,然後用select2這套件來呈現標籤。

真正的送出到伺服器上的會是隱藏的select的值,而不是你的那串,你那串只是顯示用的。

0
johncoc
iT邦新手 3 級 ‧ 2022-12-27 16:14:14

剛剛看了新增發問是把標題,問題描述,標籤都包在 form 裡面
如果要用js增加,就要整個包起來 post 給 form 的 action

1
bill0704
iT邦新手 5 級 ‧ 2022-12-28 06:39:53

其實這問題有兩個層次,首先你確實可以在form object加入其他的資料(如額外標籤)送到it後端,但是後端的邏輯不見得會處理你額外送出的資料

而且我猜it的tag是後端從資料庫取得資料後才渲染成html ,你改前端的dom是不會影響到後端的

bill0704 iT邦新手 5 級 ‧ 2022-12-28 06:44:01 檢舉

再聊已經會牽涉網頁滲透的領域了,簡言之,就是當你前端的修改有fit到後端的邏輯,你添加的tag才會在之後的網頁中出現,否則你加的dom只是自己看爽的

我要發表回答

立即登入回答