Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从内联JS处理文本字符串_Javascript_Html_Google Chrome Extension_Google Chrome Devtools - Fatal编程技术网

Javascript 从内联JS处理文本字符串

Javascript 从内联JS处理文本字符串,javascript,html,google-chrome-extension,google-chrome-devtools,Javascript,Html,Google Chrome Extension,Google Chrome Devtools,我有下面的代码,它从网页上的内联JS中提取webID。这用于Chrome扩展,单击时仅显示站点的webID: // payload.js script --> insert into the current tab after the popout has loaded window.addEventListener('load', function (evt) { chrome.extension.getBackgroundPage().chrome.tabs.executeSc

我有下面的代码,它从网页上的内联JS中提取webID。这用于Chrome扩展,单击时仅显示站点的webID:

// payload.js script --> insert into the current tab after the popout has loaded
window.addEventListener('load', function (evt) {
    chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
        file: 'payload.js'
    });;
});

//popout.html
chrome.runtime.onMessage.addListener(function (message) {
    document.getElementById('body').innerHTML = message;
    chrome.tabs.executeScript({
    code: '(' + (() => {

    for (var el of document.querySelectorAll('script[if="inlineJs"]')) 

    {
      var m = el.textContent.match(/"([^"]*webId*[^"]*)"/);
      var webid = m     
        if (webid) return webid[1];
        else {return document.getElementById('body').innerHTML = "This is not a CDK site";}     
    }
  }) + ')()',

  }, results => {
  if (!chrome.runtime.lastError && results) {
    document.getElementById('body').textContent = decodeURI(results[0]);
  }
}); 

});
目前,它返回以下内容:

{"cache":{"Co.context.configCtx":{"webId":"gmps-salvadore","locale":"en_US","version":"LIVE","page":"HomePage","secureSiteId":"b382ca78958d10048eda00145edef68b"},"features":{"directivePerfSwitch":true,"enable.directive.localisation":true,"enable.directive.thumbnailGallery":true,"enable.new.newstaticmap":false,"disable.forms.webId":false,"use.hydra.popup.title.override.via.url":true,"enable.directive.geoloc.enableHighAccuracy":true,"use.hydra.theme.service":true,"disable.ajax.options.contentType":false,"dealerLocator.map.use.markerClustering":true,"hydra.open.login.popup.on.cs.click":false,"hydra.consumerlogin.use.secure.cookie":true,"use.hydra.directive.vertical.thumbnailGallery.onpopup":true,"hydra.encrypt.data.to.login.service":true,"disable.dealerlocator.fix.loading":false,"use.hydra.date.formatting":true,"use.hydra.optimized.style.directive.updates":false,"hydra.click.pmp.button.on.myaccount.page":true,"use.hydra.fix.invalid.combination.of.filters":true,"disable.vsr.view.from.preference":false}},"store":{"properties":{"routePrefix":"/hydra-graph"}}}

我希望它能退回“gmps萨尔瓦多号”。这将在多个站点上使用,webID将在不同的站点之间更改,前缀从“lex”到“motp”。是否可以让扩展只从各个站点提取webID?

用于获取所需的特定属性。我最初尝试了此操作,但我只保留了“null”//popout.html chrome.runtime.onMessage.addListener(函数(消息){document.getElementById('body')。innerHTML=message;chrome.tabs.executeScript({code:'+()=>{for(var-el-of-document.queryselectoral('script[if=“inlineJs”]){var-m=el.textContent.match(/”([^“]*webId*[^“]*))”/);var-obj=JSON.parse(m);var-myVar=obj.cache[“Co.context.configCtx”].webId;window.alert(“webId是“+myVar”;return-myVar;}}”)+”,},