Я создал расширение для кнопки Mozilla Firefox, которая транслитерует определенную веб-страницу.
код кнопки вставляется в% appdata% из mozilla. код для button.js выглядит следующим образом
function doSomething()
{
let url = "http://localhost/aaa/trial.asp";
let request = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);
request.onload = function(aEvent) {
doc=gBrowser.contentDocument;
doc.body.innerHTML = "<div>" + gBrowser.contentDocument.body.innerHTML + "</div>";
doc.body.innerHTML = "<div style='background-color: gray' >" + aEvent.target.responseText + "</div>" + gBrowser.contentDocument.body.innerHTML;
doc.body.innerHTML = gBrowser.contentDocument.body.innerHTML + "<div id='in_trans_overlay'><a id='in_trans_lnk' href='javascript:hide(0); void 0;'>click here to see the original page</a></div>" ;
doc.getElementById("in_trans_overlay").style.left="0px";
doc.getElementById("in_trans_overlay").style.top="0px";
doc.getElementById("in_trans_overlay").style.position="fixed";
doc.getElementById("in_trans_overlay").style.backgroundColor="blue";
//doc.getElementById("in_trans_overlay").style.opacity="0.4";
doc.getElementById("in_trans_overlay").style.width="100%";
doc.getElementById("in_trans_overlay").style.zIndex="10";
doc.getElementById("in_trans_lnk").style.color="white";
//doc.getElementById("in_trans_lnk").style.opacity="1.0";
doc.body.childNodes[1].style.display="none";
hd=doc.getElementsByTagName("head");
scpt=doc.createElement("script");
scpt.setAttribute("type", "text/javascript");
scpt.setAttribute("charset", "UTF-8");
scpt.setAttribute("src", "http://localhost/aaa/hide.js");
hd[0].appendChild(scpt);
};
request.onerror = function(aEvent) {
window.alert("Error Status: " + aEvent.target.status );
};
request.open("POST", url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
params = gBrowser.contentDocument.body.innerHTML;
params = "inTransContent=" + encodeURIComponent(params);
request.setRequestHeader("Content-length", params.length);
request.setRequestHeader("Connection", "close");
request.send(params);
}
этот код отправляет xmlhttprequest и выполняет код trial.asp.
trial.asp содержит следующий код
<% Dim xmlDoc
Dim objNodeList
Dim count
set xmlDoc = Server.CreateObject("Msxml2.DOMDocument.6.0")
xmlDoc.validateOnParse = False
xmlDoc.async = False
xmlDoc.loadXML("<div>" & Request.Form("inTransContent") & "</div>")
If (xmlDoc.parseError.errorCode <> 0) Then
Dim myErr
Set myErr = xmlDoc.parseError
Response.Write("<div><br><br><br>" & myErr.reason & "<br>" & myErr.line & "<br>" & myErr.srcText & "</div>")
Else
Set objNodeList = xmlDoc.documentElement.selectNodes("//text()")
count = objNodeList.length
For i = 1 To count
objNodeList(i-1).insertData 0, "XYZ "
objNodeList(i-1).insertData objNodeList(i-1).length, " XYZ"
Next
Response.Write(xmlDoc.documentElement.xml)
End If
%>
этот код будет отправлять только те текстовые узлы, которые должны транслитерироваться, поскольку я не продвинулся много в цикле for, поэтому я заменил его на фиктивный, который добавляет xyz до и в конце. мне нужно конвертировать этот код asp, потому что я иду на asp.net. мне нужно преобразовать это в vb.net или c # код .. я вернусь к циклу for позже .. этот код должен стать файлом default.aspx в asp.net.
следующая вещь asp.net - мне нужен файл global.asax
файл global.asax содержит этот код
protected void Application_Start(object sender, EventArgs e)
{
sbyte[,] a = new sbyte[100, 100];
sbyte[,] b = new sbyte[100, 100];
int count = 0;
XDocument docA = XDocument.Load("dev.xml");
XDocument docB = XDocument.Load("guj.xml");
var devanagriKeys = (from d in docA.Descendants("mapping")
select new {
Key = d.Descendants("itrans").FirstOrDefault().Value,
Character = d.Descendants("character").FirstOrDefault().Value
}).ToArray();
var gujrathiKeys = (from g in docB.Descendants("mapping")
select new {
Key = g.Descendants("itrans").FirstOrDefault().Value,
Character = g.Descendants("character").FirstOrDefault().Value
}).ToArray();
var crossReference = (from d in devanagriKeys
join g in gujrathiKeys on d.Key equals g.Key
select new {
d.Key,
Devanagri = d.Character,
Gujrathi = g.Character
}).ToList();
этот код будет брать символы из сценария деванагри и сценария гуджрати и создавать список, используя итранс в качестве одного носителя, например, अ в итрансе - это время અ в гуджарати имеет тот же итранс
поэтому будет создан список, хранящий अ и અ, потому что они имеют одинаковые itrans.
здесь мне нужно сохранить этот список в сеансе var, чтобы я мог использовать его в default.asp ..
хотя я не могу понять это правильно.
Я сказал, что вернусь к циклу for в default.aspx, так что теперь в этом default.aspx мне нужно искать и заменять каждый текстовый узел деванагри на гуджарати и наоборот ..
Я также сбит с толку, потому что я использую сервер iis, поэтому я должен скопировать все файлы проекта asp.net в папку wwwroot в inetpub iis.
я буду благодарен, если кто-нибудь направит меня к этому !! Прошу прощения за большое количество кода ... я застрял сильно, поэтому мне действительно нужна помощь, если какие-либо вопросы по этому поводу, пожалуйста, не стесняйтесь писать спасибо !!!