Tôi có thể thêm hoặc thay đổi HTML khi trong 'Kiểm tra phần tử'. Tôi có nút liên kết 'Trang chủ' mà tôi muốn sửa đổi liên kết. Tôi đã sử dụng tùy chọn nhấp chuột phải nhưng thay đổi của tôi không được lưu?
Tôi có thể thêm hoặc thay đổi HTML khi trong 'Kiểm tra phần tử'. Tôi có nút liên kết 'Trang chủ' mà tôi muốn sửa đổi liên kết. Tôi đã sử dụng tùy chọn nhấp chuột phải nhưng thay đổi của tôi không được lưu?
Câu trả lời:
Bạn không nói bạn đang dùng trình duyệt nào, nhưng nếu đây là chrome, câu trả lời là có.
Sau khi bạn đã chọn một yếu tố, nhấp chuột phải và chọn "chỉnh sửa HTML"
Tuy nhiên, xin lưu ý rằng điều này sẽ không lưu trang web hoặc bất cứ điều gì khác, nó chỉ chỉnh sửa bản sao địa phương của bạn. Nếu bạn làm mới trang, nó sẽ trở lại như cũ.
Như những người khác đã nói, bạn có thể thay đổi liên kết bằng cách sử dụng Inspect Element
, nhưng thay đổi sẽ không được lưu vào lần tải trang tiếp theo.
Nếu bạn muốn thay đổi liên kết mỗi lần bạn mở trang, bạn có thể sử dụng Greasemonkey
hoặc các tiện ích bổ sung tương tự khác tùy thuộc vào trình duyệt bạn đang sử dụng. (Đối với Firefox, bạn có thể sử dụng Greasemonkey
).
Đây là một Greasemonkey
kịch bản nên làm những gì bạn muốn:
// ==UserScript==
// @name Test-SU-236831-edit-link
// @namespace Test-SU
// @description Test-SU-236831-edit-link
// @include http://superuser.com/questions/236831/*
// @include http://www.superuser.com/questions/236831/*
// @version 1
// @grant none
// ==/UserScript==
var GMnode,GMelID,GMmsg="";
GMelID="nav-questions";
GMnode=document.getElementById(GMelID);
if((GMnode!==null)&&(GMnode.hasAttribute("href"))){
GMmsg="OLD getAttribute-href="+GMnode.getAttribute("href")+"\n";
GMnode.setAttribute("href","http://www.google.com/");
GMmsg=GMmsg+"NEW getAttribute-href="+GMnode.getAttribute("href");
alert(GMmsg);
}
else{
alert("Can't find <a> element with id='"+GMelID+"'");
}
Kịch bản trên có một số câu lệnh "gỡ lỗi" trong đó để bạn có thể thấy những gì đang xảy ra khi tải trang. Đây là cùng một kịch bản mà không có câu lệnh "gỡ lỗi":
// ==UserScript==
// @name Test-SU-236831-edit-link
// @namespace Test-SU
// @description Test-SU-236831-edit-link
// @include http://superuser.com/questions/236831/*
// @include http://www.superuser.com/questions/236831/*
// @version 1
// @grant none
// ==/UserScript==
var GMnode,GMelID;
GMelID="nav-questions";
GMnode=document.getElementById(GMelID);
if((GMnode!==null)&&(GMnode.hasAttribute("href"))){
GMnode.setAttribute("href","http://www.google.com/");
}
Trong trường hợp bạn không quen thuộc Greasemonkey
, để sử dụng tập lệnh trên, trước tiên bạn sẽ phải cài đặt Greasemonkey
tiện ích bổ sung, sau đó thêm tập lệnh trên dưới dạng tập lệnh mới User Script
.
Bạn có thể thay đổi @name
, @namespace
và @description
các lĩnh vực để bất cứ điều gì bạn muốn chuỗi để nhận dạng duy nhất User Script
.
Thay đổi @include
trường để xác định URL mà bạn muốn User Script
hành động. Bạn có thể có nhiều hơn một @include
lĩnh vực.
Greasemonkey
sẽ chạy và hành động trên trang web sau khi tài liệu "Sẵn sàng", nghĩa là sau khi toàn bộ trang bao gồm <Body>
và tất cả các tập lệnh bên ngoài đã được tải, nhưng trước khi tài nguyên trang như hình ảnh và một số tập lệnh được tải động được tải. Có những bước bạn có thể thực hiện để đảm bảo Greasemonkey
chờ tất cả các tài nguyên khác này tải trước khi chạy mã của mình. Bạn sẽ làm điều này bằng cách thêm một eventlistener
để thực thi mã của bạn sau onload
sự kiện. Trong hầu hết các trường hợp, điều này sẽ không cần thiết, nhưng trong trường hợp nó dành cho trang web mục tiêu của bạn, đây là Greasemonkey
kịch bản cho điều đó:
// ==UserScript==
// @name Test-SU-236831-edit-link
// @namespace Test-SU
// @description Test-SU-236831-edit-link
// @include http://superuser.com/questions/236831/*
// @include http://www.superuser.com/questions/236831/*
// @version 1
// @grant none
// ==/UserScript==
if (window.addEventListener) {
window.addEventListener('load', readytogo, false);
}
else {
if (window.attachEvent) {
window.attachEvent('onload', readytogo);
}
}
function readytogo() {
var GMnode,GMelID;
GMelID="nav-questions";
GMnode=document.getElementById(GMelID);
if((GMnode!==null)&&(GMnode.hasAttribute("href"))){
GMnode.setAttribute("href","http://www.google.com/");
}
}