Если вы знаете, к каким переменным вы хотите получить доступ, вы можете быстро создать собственный скрипт контента для получения их значений.
В popup.js
:
chrome.tabs.executeScript(null, {code: 'var name = "property"'}, function() {
chrome.tabs.executeScript(null, {file: "retrieveValue.js"}, function(ret) {
for (var i = 0; i < ret.length; i++) {
console.log(ret[i]); //prints out each returned element in the array
}
});
});
В retrieveValue.js
:
function returnValues() {
return document.getElementById("element")[name];
//return any variables you need to retrieve
}
returnValues();
Вы можете изменить код для возврата массивов или других объектов.
Вы можете сделать это с IE «иногда», как это делал я для внутреннего приложения в интрасети, которое является только IE. Попробуйте сделать следующее:
function GetComputerName() {
try {
var network = new ActiveXObject('WScript.Network');
// Show a pop up if it works
alert(network.computerName);
}
catch (e) { }
}
Это может потребовать или не потребовать определенной настройки безопасности в IE, чтобы разрешить браузеру доступ к объекту ActiveX.
Вот ссылка на дополнительную информацию о WScript: Подробнее Информация
Мы сделали что-то подобное для собственный инструмент для отслеживания ошибок, он был удален перед запуском, но я думаю, что он сработает Я думаю, что студент-кооператив нашел его где-то в Интернете :)
using System;
using System.Management;
using System.Windows.Forms;
namespace ComputerInfo
{
/// <summary>
/// Summary description for Class1.
/// </summary>
public class CPUInfo
{
#region Properties
private String osVersion;
public String OSVersion
{
get { return this.osVersion; }
}
private String machineName;
public String MachineName
{
get { return this.OSVersion; }
}
private int width;
public int ScreenWidth
{
get { return this.width; }
}
private int height;
public int ScreenHeight
{
get { return this.height; }
}
private String userName;
public String UserName
{
get { return this.userName; }
}
private String clockSpeed;
public String ClockSpeed
{
get { return this.clockSpeed; }
}
private String procName;
public String ProcessorName
{
get { return this.procName; }
}
private String manufacturer;
public String ProcessorManufacturer
{
get { return this.manufacturer; }
}
private String version;
public String ProcessorVersion
{
get { return this.version; }
}
private double ram;
public double RAM
{
get { return this.ram; }
}
private bool usehtml;
public bool UseHTMLFormatting
{
get { return this.usehtml; }
set { usehtml = value; }
}
#endregion
public CPUInfo() : this(false)
{
}
public CPUInfo(bool use_html_formatting)
{
usehtml = use_html_formatting;
osVersion = System.Environment.OSVersion.ToString() ;
machineName = System.Environment.MachineName.ToString();
width = Screen.PrimaryScreen.Bounds.Width;
height = Screen.PrimaryScreen.Bounds.Height;
userName = "";
clockSpeed = "";
procName = "";
manufacturer = "";
version = "";
ram = 0.0d;
getMachineInfo();
}
private void getMachineInfo()
{
try
{
using(ManagementObjectSearcher win32Proc = new ManagementObjectSearcher("select * from Win32_Processor"),
win32CompSys = new ManagementObjectSearcher("select * from Win32_ComputerSystem"),
win32Memory = new ManagementObjectSearcher("select * from Win32_PhysicalMemory"))
{
foreach (ManagementObject obj in win32Proc.Get())
{
clockSpeed = obj["CurrentClockSpeed"].ToString();
procName = obj["Name"].ToString();
manufacturer = obj["Manufacturer"].ToString();
version = obj["Version"].ToString();
}
Эмм, есть ли причина, по которой вы не можете просто использовать HttpRequest? Это будет на стороне сервера, но вы могли бы передать его в javascript, если вам нужно?
Page.Request.UserHostName
Единственная проблема с этим заключается в том, что он действительно будет работать только в среде интрасети, иначе это просто закончится сбор пользователей Маршрутизатор или прокси-адрес ...
Браузер, операционная система, цвета экрана, экран Разрешение, версия Flash и поддержка Java должны быть обнаружены с помощью JavaScript (и, возможно, некоторых других). Однако имя компьютера невозможно.
РЕДАКТИРОВАТЬ: По крайней мере, невозможно во всех браузерах.
Ну, вы можете получить IP-адрес с помощью asp.net, а затем выполнить обратный поиск DNS на IP-адресе, чтобы получить имя хоста.
Из книги рецептов разработчика ASP.NET ... Выполнение обратного поиска в DNS .
Невозможно получить имя компьютера пользователя с Javascript. Вы можете получить все подробности о браузере и сети. Но не более того.
Как кто-то сегодня ответил на один из предыдущих вопросов.
Я уже оказал услугу, посетив ваш веб-сайт. Может быть, я вернусь или порекомендую другим друзьям .. Я также рассказал вам, где я, и какую ОС, браузер и разрешение экрана я использую. Почему вы хотите знать цвет мое нижнее белье? ; -)
Вы также не можете сделать это с помощью asp.net.
Нет, эти данные не разглашаются. Единственные доступные данные - это то, что предоставляется через HTTP-запрос, который может включать их ОС и другую подобную информацию. Но уж точно не имя машины.