Tôi thấy bạn đang gặp vấn đề với các liên kết chia sẻ xã hội. Tôi đã có một vấn đề tương tự tại một số điểm và tìm thấy câu hỏi này, nhưng tôi không thấy một câu trả lời hoàn chỉnh cho nó. Tôi hy vọng độ phân giải JavaScript của tôi từ bên dưới sẽ giúp:
Tôi đã có các liên kết chia sẻ mặc định cần được sửa đổi để URL được chia sẻ sẽ có các tham số UTM bổ sung được kết hợp.
Ví dụ của tôi sẽ dành cho liên kết chia sẻ xã hội Facebook, nhưng nó hoạt động cho tất cả các liên kết mạng chia sẻ xã hội có thể có:
URL cần được chia sẻ là:
//mywebsitesite.com/blog/post-name
Liên kết chia sẻ mặc định trông giống như:
$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
Lần đầu tiên tôi giải mã nó:
console.log[ decodeURIComponent[$facebook_default] ];
=>
//www.facebook.com/sharer.php?u=//mywebsitesite.com/blog/post-name/&t=hello
Sau đó, tôi đã thay thế URL bằng URL mới được mã hóa [bằng các tham số UTM được nối]:
console.log[ decodeURIComponent[$facebook_default].replace[ window.location.href, encodeURIComponent[window.location.href+'?utm_medium=social&utm_source=facebook']] ];
=>
//www.facebook.com/sharer.php?u=https%3A%2F%mywebsitesite.com%2Fblog%2Fpost-name%2F%3Futm_medium%3Dsocial%26utm_source%3Dfacebook&t=2018
Đó là nó!
Giải pháp hoàn chỉnh:
$ facebook_default = $ ['a.facebook_default_link']. attr ['href'];
$ ['a.facebook_default_link'].
Bỏ qua nội dung chính
Trình duyệt này không còn được hỗ trợ.
Nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, cập nhật bảo mật và hỗ trợ kỹ thuật.
Trong "Giải pháp thám hiểm" ..
- Mở rộng thư mục "lượt xem" ..
- Chọn "Trang chủ" -> "INDEX. CSHTML". Thêm mã sau: @{Viewbag. Title = "index"; } Truyền nhiều tham số trong url @Using [html. BeginForm ["index", "home"]] {
- Mẫu: Chuyển nhiều giá trị cho tài nguyên web thông qua tham số dữ liệu
Bài báo
09/20/2022
Trang ở đây đại diện cho một kỹ thuật để truyền các giá trị bổ sung trong một tham số và sau đó xử lý chúng trong tài nguyên web của bạn.
Mẫu tài nguyên web HTML
Mã HTML bên dưới đại diện cho tài nguyên web trang web [HTML] bao gồm một tập lệnh xác định ba chức năng:
GetDataparam: Được gọi từ sự kiện
body.onload
, chức năng này truy xuất bất kỳ tham số chuỗi truy vấn nào được truyền đến trang và định vị một tên có têndata
.: Called from thebody.onload
event, this function retrieves any query string parameters passed to the page and locates one nameddata
.Parsedatavalue: Nhận tham số dữ liệu từ
getDataParam
và xây dựng bảng DHTML để hiển thị bất kỳ giá trị nào được truyền trong tham sốdata
.: Receives the data parameter fromgetDataParam
and builds a DHTML table to display any values passed within thedata
parameter.Noparams: Hiển thị thông báo khi không có tham số nào được chuyển đến trang.: Displays a message when no parameters are passed to the page.
Show Data Parameters Page
body
{
font-family: Segoe UI, Tahoma, Arial;
background-color: #d6e8ff;
}
tbody
{
background-color: white;
}
th
{
background-color: black;
color: White;
}
document.onreadystatechange = function [] {
if [document.readyState == "complete"] {
getDataParam[];
}
}
function getDataParam[] {
//Get the any query string parameters and load them
//into the vals array
var vals = new Array[];
if [location.search != ""] {
vals = location.search.substr[1].split["&"];
for [var i in vals] {
vals[i] = vals[i].replace[/\+/g, " "].split["="];
}
//look for the parameter named 'data'
var found = false;
for [var i in vals] {
if [vals[i][0].toLowerCase[] == "data"] {
parseDataValue[vals[i][1]];
found = true;
break;
}
}
if [!found]
{ noParams[]; }
}
else {
noParams[];
}
}
function parseDataValue[datavalue] {
if [datavalue != ""] {
var vals = new Array[];
var message = document.createElement["p"];
setText[message, "These are the data parameters values that were passed to this page:"];
document.body.appendChild[message];
vals = decodeURIComponent[datavalue].split["&"];
for [var i in vals] {
vals[i] = vals[i].replace[/\+/g, " "].split["="];
}
//Create a table and header using the DOM
var oTable = document.createElement["table"];
var oTHead = document.createElement["thead"];
var oTHeadTR = document.createElement["tr"];
var oTHeadTRTH1 = document.createElement["th"];
setText[oTHeadTRTH1, "Parameter"];
var oTHeadTRTH2 = document.createElement["th"];
setText[oTHeadTRTH2, "Value"];
oTHeadTR.appendChild[oTHeadTRTH1];
oTHeadTR.appendChild[oTHeadTRTH2];
oTHead.appendChild[oTHeadTR];
oTable.appendChild[oTHead];
var oTBody = document.createElement["tbody"];
//Loop through vals and create rows for the table
for [var i in vals] {
var oTRow = document.createElement["tr"];
var oTRowTD1 = document.createElement["td"];
setText[oTRowTD1, vals[i][0]];
var oTRowTD2 = document.createElement["td"];
setText[oTRowTD2, vals[i][1]];
oTRow.appendChild[oTRowTD1];
oTRow.appendChild[oTRowTD2];
oTBody.appendChild[oTRow];
}
oTable.appendChild[oTBody];
document.body.appendChild[oTable];
}
else {
noParams[];
}
}
function noParams[] {
var message = document.createElement["p"];
setText[message, "No data parameter was passed to this page"];
document.body.appendChild[message];
}
//Added for cross browser support.
function setText[element, text] {
if [typeof element.innerText != "undefined"] {
element.innerText = text;
}
else {
element.textContent = text;
}
}
Sử dụng trang này
Tạo một tài nguyên web webpage có tên là "New_/showdataparams.htm" bằng mã mẫu.
Các tham số bạn muốn vượt qua là:
1$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
Ghi chú
Nếu bạn thêm các tham số tĩnh bằng hộp thoại Thuộc tính tài nguyên web từ Trình chỉnh sửa biểu mẫu, bạn chỉ cần dán các tham số mà không cần mã hóa chúng vào cột tham số tùy chỉnh [dữ liệu]. Các giá trị này sẽ được mã hóa cho bạn, nhưng bạn vẫn cần giải mã chúng và trích xuất các giá trị trong trang của bạn.Custom Parameter[data] column. These values will be encoded for you, but you’ll still need to decode them and extract the values in your page.
Đối với các giá trị động được tạo trong mã, hãy sử dụng phương thức
2 trên các tham số. Các giá trị được mã hóa phải là:$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
3$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
Mở trang chuyển các tham số được mã hóa làm giá trị của tham số dữ liệu:
///WebResources/new_/ShowDataParams.htm?data=first%3DFirst%20Value%26second%3DSecond%20Value%26third%3DThird%20Value
Ghi chú
Nếu bạn thêm các tham số tĩnh bằng hộp thoại Thuộc tính tài nguyên web từ Trình chỉnh sửa biểu mẫu, bạn chỉ cần dán các tham số mà không cần mã hóa chúng vào cột tham số tùy chỉnh [dữ liệu]. Các giá trị này sẽ được mã hóa cho bạn, nhưng bạn vẫn cần giải mã chúng và trích xuất các giá trị trong trang của bạn.Custom Parameters[data] column, you can just preview the form.
Đối với các giá trị động được tạo trong mã, hãy sử dụng phương thức
2 trên các tham số. Các giá trị được mã hóa phải là:$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
Mở trang chuyển các tham số được mã hóa làm giá trị của tham số dữ liệu:Nếu bạn đã thêm tài nguyên web vào một biểu mẫu và đã dán các tham số không được mã hóa vào cột tham số [dữ liệu] tùy chỉnh, bạn chỉ có thể xem trước biểu mẫu.
4 sẽ hiển thị một bảng được tạo động:$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
Tham số Giá trị Đầu tiên Giá trị đầu tiên thứ hai
Giá trị thứ hai
ngày thứ ba
Giá trị thứ ba
Làm thế nào nó hoạt động
Để truy cập các giá trị được nhúng trong giá trị tham số chuỗi truy vấn dữ liệu, trong tài nguyên web web của bạn, bạn có thể trích xuất giá trị của tham số dữ liệu và sau đó sử dụng mã để chia chuỗi thành một mảng để bạn có thể truy cập từng cặp giá trị tên.
Khi trang tải chức năng getDataParam
được gọi. Hàm này chỉ cần xác định tham số dữ liệu và chuyển giá trị cho hàm
$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
6. Nếu không tìm thấy tham số dữ liệu nào, hàm $facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
7 sẽ thêm thông báo vào trang thay cho bảng.Sample: Import Files as Web Resources
Web Page [HTML] Web Resources
Hàm $facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
6 sử dụng logic tương tự được tìm thấy trong getDataParam
để định vị các trình phân cách tham số tùy chỉnh để tạo một mảng các cặp giá trị tên. Sau đó, nó tạo ra một bảng và nối nó vào tài liệu trống khác.
$facebook_default = "//www.facebook.com/sharer.php?u=https%3A%2F%2mywebsitesite.com%2Fblog%2Fpost-name%2F&t=hello"
Xem thêm