document.write () पेज लोड के बाद कॉल करते समय सभी पेज सामग्री को हटा रहा है - जावास्क्रिप्ट, जेसन, ब्लॉगर, document.write, ब्लॉगस्पॉट

मेरे पास एक वेब पेज है जहां मैं Google पढ़ रहा हूंजेएसओएन का उपयोग कर अपनी फ़ीड से ब्लॉगर ब्लॉग श्रेणी। मेरे पास दो कार्य हैं। सबसे पहले सभी ब्लॉग श्रेणियों की सूची प्राप्त हो रही है और दूसरा उस से ब्लॉग श्रेणियां ले रहा है और उसके बाद से नवीनतम पोस्ट प्राप्त करने के लिए ब्लॉग को फिर से मार रहा है यह देखने के लिए टेक्स्ट टेस्ट है कि वेब पेज डेटा यहां है या नहीं।

<div id="blogCategoriesList">
<script type="text/javascript">
var blogurl = "https://googleblog.blogspot.com/";
function blogCatList(json) {
document.write("<select onchange="showThisCatPosts(this.value)">");
document.write("<option>CHOOSE A CATEGORY</option>");
for (var i = 0; i < json.feed.category.length; i++)
{
var item = "<option value="" + json.feed.category[i].term + "">" + json.feed.category[i].term + "</option>";
document.write(item);
}
document.write("</select>");
}
document.write("<script type="text/javascript" src="" + blogurl + "/feeds/posts/default?redirect=false&orderby=published&alt=json-in-script&callback=blogCatList&max-results=500"></script>");
document.write("<br/><br/><a href="" + blogurl + "" target="_blank" class="footerLINK">Read The Blog Online Now</a>");
</script>
</div>
<div id="blogCategoriesPost">
<script style="text/javascript">
var blogurl = "https://googleblog.blogspot.com/";
var numposts = 10;  // Out Of 500
var displaymore = true;
var showcommentnum = true;
var showpostdate = true;
var showpostsummary = true;
var numchars = 100;
function blogCategoriesPost(json) {
if(json.feed.entry.length < numposts ){
numposts = json.feed.entry.length;
}
for (var i = 0; i < numposts; i++) {
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var posturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == "replies" && entry.link[k].type == "text/html") {
var commenttext = entry.link[k].title;
var commenturl = entry.link[k].href;
}
if (entry.link[k].rel == "alternate") {
posturl = entry.link[k].href;
break;
}
}
var postdate = entry.published.$t;
var cdyear = postdate.substring(0, 4);
var cdmonth = postdate.substring(5, 7);
var cdday = postdate.substring(8, 10);
var monthnames = new Array();
monthnames[1] = "Jan";
monthnames[2] = "Feb";
monthnames[3] = "Mar";
monthnames[4] = "Apr";
monthnames[5] = "May";
monthnames[6] = "Jun";
monthnames[7] = "Jul";
monthnames[8] = "Aug";
monthnames[9] = "Sep";
monthnames[10] = "Oct";
monthnames[11] = "Nov";
monthnames[12] = "Dec";
document.write("<div id="mainDIV">");
document.write("<h2 class="post_heading">" + posttitle + "</h2>");
if ("content" in entry) {
var postcontent = entry.content.$t;
} else
if ("summary" in entry) {
var postcontent = entry.summary.$t;
} else var postcontent = "";
var re = /<S[^>]*>/g;
postcontent = postcontent.replace(re, "");   // Will Show Only Text Instead Of HTML
if (showpostsummary == true) {
if (postcontent.length < numchars) {
document.write("<span class="post_summary">");
document.write(postcontent);
document.write("</span>");
} else {
//document.getElementById("catPosts").innerHTML += "<span class="post_summary">";
document.write("<span class="post_summary">");
postcontent = postcontent.substring(0, numchars);
var quoteEnd = postcontent.lastIndexOf(" ");
postcontent = postcontent.substring(0, quoteEnd);
document.write(postcontent + "...");
document.write("</span>");
}
}
var towrite = "";
document.write("<strong class="post_footer">");
if (showpostdate == true) {
towrite = "Published On: " + towrite + monthnames[parseInt(cdmonth, 10)] + "-" + cdday + "-" + cdyear;
}
if (showcommentnum == true) {
if (commenttext == "1 Comments") commenttext = "1 Comment";
if (commenttext == "0 Comments") commenttext = "No Comments";
commenttext = "<br/><a href="" + commenturl + "" target ="_blank">" + commenttext + "</a>";
towrite = towrite + commenttext;
}
if (displaymore == true) {
towrite = towrite + "<br/><a href="" + posturl + "" target="_blank">Read Full Article --></a>";
}
document.write(towrite);
document.write("</strong></div>");
}
}
function showThisCatPosts(BLOGCAT){
document.write("<script type="text/javascript" src="" + blogurl + "/feeds/posts/default/-/" + BLOGCAT + "?redirect=false&orderby=published&alt=json-in-script&callback=blogCategoriesPost&max-results=500"></script>");
document.write("<a href="" + blogurl + "" target="_blank" class="footerLINK">Read The Blog Online Now</a>");
}
</script>

आप एक काम कर रहे डेमो देख सकते हैं JSBIN। मेरी समस्या यह है कि जब पृष्ठ लोड होता है, तो इसका काम होता हैपूरी तरह से सभी पेज डेटा और ब्लॉग श्रेणियों को सूचीबद्ध करता है लेकिन जब मैं किसी भी श्रेणी का चयन करता हूं तो मेरा सभी पृष्ठ डेटा हटा देता है और केवल वह लेबल पोस्ट दिखाई दे रहा है। यह क्यों हो रहा है ... ??? मैं केवल लेबल के अनुसार पदों को बदलना चाहता हूं न कि सभी पेज डेटा को निकालने के लिए ...

उत्तर:

उत्तर № 1 के लिए 1

यह सामान्य व्यवहार है document.write()। आपको इसका उपयोग करने की आवश्यकता हो सकती है:

document.getElementById("element_id").innerHTML = "Stuff to Write.";

जवाब के लिए 0 № 2

अंत में मुझे हल हो गया। कारण यह है कि document.write() खराब है क्योंकि यह पृष्ठ लोड पर पाठ लिखता है। यदि आप बाद में पृष्ठ लोड पर कुछ पाठ लिखना चाहते हैं तो आप इसका उपयोग कर सकते हैं।

यदि आप बाद में लिखना चाहते हैं तो इसका उपयोग करना होगा document.getElementById("element_id").innerHTML अपना टेक्स्ट लिखने के लिए लेकिन यदि आप लिखना चाहते हैं <script> तब टैग करें document.getElementById("element_id").innerHTML यह अच्छा नहीं है क्योंकि यह लिखेगा लेकिन एसआरसी को इतना हिट नहीं करेगा document.createElement("script") पेज लोड के बाद स्क्रिप्ट लिखने के लिए जो असमर्थ होगा।

मेरे कोड के कामकाजी डेमो देखें JSBIN... :)

उन्हें विशेष धन्यवाद: @ प्रवीण कुमार :-)


संबंधित सवाल
सबसे लोकप्रिय