如何更改动态元标记但这在查看源代码中不起作用

时间:2018-10-16 08:13:03

标签: javascript php jquery

我正在使用history.pushState方法更改我的URL和标题

window.history.pushState(null, response.pageTitle, curl);

使用此方法:更改元标记说明和关键字

$('meta[name="description"]').attr('content', d.meta_disc_program);
$('meta[name="keywords"]').attr('content', d.meta_keyword_program);

URL |元标记|标题由数据库动态更改。 页面加载或刷新时-通过匹配URL与数据库URL字段获取数据。 所有页面都工作良好。 但是在查看源文件中:URL更改但不显示任何元标记| 查看源文件

中的标题

解释更多我的问题: 这是我使用的虚拟代码-d.ProgramUrlonWeb是(像:/ b-tech-Electrical-engineering ),它会生成curl(请参见代码)

//Change URL 

                            if (d.ProgramUrlonWeb) {

                                var ma   = window.document.URL;                                                        
                                var res = ma.substring(0, ma.indexOf('\search-your-course'));


                                    if (ma.indexOf('\search-your-course') != -1 && data.length > 0) {
                                        if (d.ProgramUrlonWeb != null && d.ProgramUrlonWeb != undefined) {
                                            //back slash in url
                                            if (ma.indexOf('localhost') != -1) {
                                                curl = res + 'search-your-course/programmes' + d.ProgramUrlonWeb;
                                            }                                                                                                                                           
                                        }
                                    }
                                    else {
                                        if (d.ProgramUrlonWeb != null && d.ProgramUrlonWeb != undefined) {
                                            //forward slash in url
                                            if (ma.indexOf('localhost') != -1 || ma.indexOf('admission.aksuniversity.ac.in') != -1) {
                                                curl = 'search-your-course/programmes' + d.ProgramUrlonWeb;
                                            }                                                                                               
                                        }
                                    }

                                    //window.location.href="#";
                                    //dynamic url
                                    var response = {};
                                    var stateObj = {};
                                    response.pageTitle = d.meta_title_program;
                                    processAjaxData(response, stateObj, ma + curl);                                                                       
                                    $('meta[name="description"]').attr('content', d.meta_disc_program);
                                    $('meta[name="keywords"]').attr('content', d.meta_keyword_program);
                            }                           
//Change URL      

下一步: processAjaxData使用window.history.pushState更改页面标题和URL。

function processAjaxData(response, stateObj, urlPath) {
     var Title = response.pageTitle;
    if (urlPath != "" && urlPath != undefined) {
        window.history.pushState(null, response.pageTitle, curl);         
        document.title = Title;

    }
}

页面重新加载:匹配数据库中的URL(,例如:/ b-tech-Electrical-engineering ),并返回数据库的所有字段,例如元标记和页面数据等。

问题:页面上的所有工作也可以在页面上刷新,但是当我打开视图源时不工作的所有字段为空。那么有什么解决方案吗? 我要的demo link

1 个答案:

答案 0 :(得分:0)

谢谢,View Source是在服务器端加载数据,因此解决方案是在服务器端加载一些对SEO非常重要的数据。 我正在生成一些服务器端代码,例如元标题和描述以及关键字和标题标签,这对于SEO很重要。更改一些代码-在页面加载之前加载重要的SEO内容。 由数据库(PHP)匹配URL返回一些SEO标记和标题,这在视图源中有效。我希望我习惯了当前的策略。