From 80966d95120b28775dffce847be2529518f2f7c3 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Wed, 15 Jun 2022 17:13:12 +0800 Subject: [PATCH] AutoCorrect fix invalid spaces files/zh-cn. --- files/zh-cn/glossary/udp/index.md | 2 +- .../javascript/asynchronous/promises/index.md | 4 +- .../building_blocks/conditionals/index.html | 2 +- .../guidelines/writing_style_guide/index.html | 2 +- .../api/alarms/create/index.html | 6 +- .../index.html | 4 +- .../aria/aria_live_regions/index.html | 24 +++---- .../aria/forms/alerts/index.html | 28 ++++----- files/zh-cn/web/accessibility/aria/index.html | 2 +- .../aria/roles/button_role/index.html | 6 +- .../aria/roles/listbox_role/index.html | 6 +- .../index.html | 4 +- files/zh-cn/web/api/abortsignal/index.html | 2 +- .../api/analysernode/analysernode/index.html | 4 +- .../getbytetimedomaindata/index.html | 2 +- .../web/api/animation/animation/index.html | 2 +- .../web/api/animation/currenttime/index.html | 2 +- .../zh-cn/web/api/animation/effect/index.html | 2 +- files/zh-cn/web/api/animation/index.html | 4 +- .../api/audiobuffer/audiobuffer/index.html | 2 +- files/zh-cn/web/api/audiobuffer/index.html | 2 +- .../web/api/audiobuffersourcenode/index.html | 2 +- .../web/api/audionode/connect/index.html | 2 +- files/zh-cn/web/api/audionode/index.html | 6 +- files/zh-cn/web/api/audioparam/index.html | 4 +- .../audioscheduledsourcenode/stop/index.html | 2 +- .../web/api/audioworkletprocessor/index.html | 4 +- files/zh-cn/web/api/cache/add/index.html | 2 +- files/zh-cn/web/api/cache/addall/index.html | 4 +- files/zh-cn/web/api/cache/delete/index.html | 2 +- files/zh-cn/web/api/cache/index.html | 8 +-- files/zh-cn/web/api/cache/keys/index.html | 6 +- .../zh-cn/web/api/cachestorage/has/index.html | 2 +- .../web/api/cachestorage/match/index.html | 4 +- files/zh-cn/web/api/cdatasection/index.html | 4 +- .../channelmergernode/index.html | 2 +- .../web/api/channelmergernode/index.html | 4 +- files/zh-cn/web/api/characterdata/index.html | 6 +- .../index.html | 2 +- .../zh-cn/web/api/css_object_model/index.html | 2 +- files/zh-cn/web/api/csspagerule/index.html | 4 +- .../setproperty/index.html | 2 +- files/zh-cn/web/api/cssstylesheet/index.html | 2 +- files/zh-cn/web/api/cssvalue/index.html | 2 +- .../web/api/datatransfer/dropeffect/index.md | 2 +- .../api/datatransfer/effectallowed/index.html | 2 +- .../web/api/datatransfer/files/index.html | 2 +- .../api/datatransfer/setdragimage/index.html | 2 +- .../web/api/datatransfer/types/index.html | 4 +- .../webkitgetasentry/index.html | 2 +- .../web/api/devicemotionevent/index.html | 4 +- .../api/devicemotionevent/interval/index.html | 2 +- .../deviceorientationevent/beta/index.html | 2 +- .../web/api/document/alinkcolor/index.html | 2 +- .../zh-cn/web/api/document/cookie/index.html | 4 +- .../web/api/document/createelement/index.html | 4 +- .../api/document/createelementns/index.html | 2 +- .../web/api/document/createevent/index.html | 2 +- .../document/createnodeiterator/index.html | 6 +- .../createprocessinginstruction/index.html | 2 +- .../api/document/createtreewalker/index.html | 2 +- .../zh-cn/web/api/document/domain/index.html | 4 +- .../api/document/dragenter_event/index.html | 2 +- .../web/api/document/evaluate/index.html | 2 +- .../web/api/document/execcommand/index.html | 14 ++--- .../api/document/fullscreenenabled/index.html | 2 +- .../api/document/getelementbyid/index.html | 6 +- .../api/document/getelementsbyname/index.html | 2 +- .../getelementsbytagnamens/index.html | 2 +- .../web/api/document/hasfocus/index.html | 2 +- files/zh-cn/web/api/document/head/index.html | 2 +- .../zh-cn/web/api/document/images/index.html | 2 +- .../api/document/implementation/index.html | 4 +- files/zh-cn/web/api/document/index.html | 2 +- .../web/api/document/lastmodified/index.html | 2 +- .../web/api/document/queryselector/index.html | 4 +- .../api/document/queryselectorall/index.html | 8 +-- .../web/api/document/scroll_event/index.html | 2 +- .../api/document/scrollingelement/index.html | 2 +- .../document/selectedstylesheetset/index.html | 2 +- .../web/api/document/timeline/index.html | 4 +- .../web/api/document/tooltipnode/index.html | 2 +- .../api/document/visibilitystate/index.html | 2 +- .../document_object_model/examples/index.html | 2 +- .../introduction/index.html | 20 +++--- .../index.html | 2 +- .../using_the_w3c_dom_level_1_core/index.html | 2 +- .../whitespace/index.html | 8 +-- files/zh-cn/web/api/domexception/index.html | 18 +++--- .../createdocumenttype/index.html | 2 +- .../createhtmldocument/index.html | 2 +- files/zh-cn/web/api/dommatrix/index.html | 2 +- .../zh-cn/web/api/domrectreadonly/index.html | 2 +- .../web/api/domtokenlist/contains/index.html | 2 +- .../web/api/domtokenlist/item/index.html | 6 +- .../web/api/domtokenlist/keys/index.html | 2 +- .../web/api/domtokenlist/toggle/index.html | 2 +- files/zh-cn/web/api/dragevent/index.html | 2 +- .../web/api/element/classlist/index.html | 2 +- .../web/api/element/clientheight/index.html | 4 +- .../zh-cn/web/api/element/closest/index.html | 2 +- .../api/element/getattributenode/index.html | 4 +- .../element/getelementsbytagname/index.html | 4 +- files/zh-cn/web/api/element/index.html | 2 +- .../web/api/element/innerhtml/index.html | 4 +- .../element/insertadjacentelement/index.html | 2 +- .../web/api/element/keyup_event/index.html | 4 +- .../api/element/mousedown_event/index.html | 2 +- .../api/element/mouseenter_event/index.html | 4 +- .../web/api/element/namespaceuri/index.html | 6 +- .../web/api/element/outerhtml/index.html | 4 +- .../element/removeattributenode/index.html | 4 +- .../api/element/replacechildren/index.html | 2 +- .../web/api/element/replacewith/index.html | 2 +- .../element/scrollintoviewifneeded/index.html | 4 +- .../web/api/element/scrollwidth/index.html | 2 +- .../web/api/element/setattribute/index.html | 6 +- .../api/element/setattributenodens/index.html | 2 +- .../web/api/element/setcapture/index.html | 2 +- .../api/element/touchcancel_event/index.html | 2 +- .../web/api/element/wheel_event/index.html | 4 +- .../web/api/event/currenttarget/index.html | 2 +- files/zh-cn/web/api/event/event/index.html | 2 +- .../zh-cn/web/api/event/eventphase/index.html | 4 +- .../web/api/event/originaltarget/index.html | 2 +- .../api/eventsource/eventsource/index.html | 2 +- .../eventtarget/addeventlistener/index.html | 14 ++--- .../api/eventtarget/dispatchevent/index.html | 2 +- files/zh-cn/web/api/eventtarget/index.html | 4 +- .../zh-cn/web/api/ext_float_blend/index.html | 4 +- files/zh-cn/web/api/gamepad/index.html | 2 +- .../using_the_gamepad_api/index.html | 8 +-- .../api/geolocation/watchposition/index.html | 2 +- .../web/api/geolocationposition/index.html | 4 +- .../onanimationend/index.html | 4 +- .../onanimationiteration/index.html | 2 +- .../globaleventhandlers/onclose/index.html | 4 +- .../oncontextmenu/index.html | 6 +- .../globaleventhandlers/oninput/index.html | 2 +- .../globaleventhandlers/oninvalid/index.html | 2 +- .../api/globaleventhandlers/onload/index.html | 2 +- .../ontransitioncancel/index.html | 2 +- files/zh-cn/web/api/headers/index.html | 4 +- files/zh-cn/web/api/history/index.html | 4 +- .../web/api/history/pushstate/index.html | 8 +-- files/zh-cn/web/api/history/state/index.html | 2 +- files/zh-cn/web/api/history_api/index.html | 8 +-- .../microtask_guide/in_depth/index.html | 8 +-- .../html_dom_api/microtask_guide/index.html | 2 +- .../drag_operations/index.html | 6 +- .../file_drag_and_drop/index.html | 2 +- .../web/api/html_drag_and_drop_api/index.html | 4 +- .../recommended_drag_types/index.html | 6 +- .../api/htmlanchorelement/download/index.html | 2 +- .../web/api/htmlanchorelement/hash/index.html | 4 +- .../web/api/htmlanchorelement/href/index.html | 2 +- .../api/htmlanchorelement/origin/index.html | 2 +- .../api/htmlanchorelement/pathname/index.html | 2 +- .../api/htmlanchorelement/search/index.html | 4 +- .../api/htmlanchorelement/tostring/index.html | 2 +- .../zh-cn/web/api/htmlareaelement/index.html | 6 +- .../web/api/htmlaudioelement/audio/index.html | 2 +- .../zh-cn/web/api/htmlaudioelement/index.html | 2 +- .../zh-cn/web/api/htmlbaseelement/index.html | 4 +- .../web/api/htmlbuttonelement/index.html | 20 +++--- .../htmlcanvaselement/getcontext/index.html | 6 +- .../web/api/htmlcanvaselement/index.html | 14 ++--- .../web/api/htmlcanvaselement/toblob/index.md | 2 +- files/zh-cn/web/api/htmlcollection/index.md | 2 +- .../web/api/htmlcollection/item/index.html | 8 +-- .../web/api/htmldetailselement/index.html | 8 +-- .../toggle_event/index.html | 2 +- .../web/api/htmldialogelement/index.html | 10 +-- files/zh-cn/web/api/htmldivelement/index.html | 2 +- .../animationstart_event/index.html | 2 +- .../web/api/htmlelement/innertext/index.html | 4 +- .../web/api/htmlelement/outertext/index.html | 2 +- .../transitionstart_event/index.md | 10 +-- .../web/api/htmlfieldsetelement/index.html | 8 +-- .../zh-cn/web/api/htmlheadelement/index.html | 6 +- .../zh-cn/web/api/htmlhtmlelement/index.html | 8 +-- .../api/htmlhtmlelement/version/index.html | 4 +- .../contentwindow/index.html | 4 +- .../web/api/htmliframeelement/index.html | 34 +++++----- .../api/htmlimageelement/complete/index.html | 4 +- .../api/htmlimageelement/srcset/index.html | 6 +- .../zh-cn/web/api/htmlinputelement/index.html | 62 +++++++++---------- .../api/htmlinputelement/labels/index.html | 2 +- .../api/htmlinputelement/multiple/index.html | 2 +- .../setselectionrange/index.html | 6 +- .../webkitdirectory/index.html | 12 ++-- files/zh-cn/web/api/htmllielement/index.html | 4 +- .../htmllinkelement/referrerpolicy/index.html | 4 +- .../htmlmediaelement/canplaytype/index.html | 2 +- .../api/htmlmediaelement/duration/index.html | 2 +- .../zh-cn/web/api/htmlmediaelement/index.html | 2 +- .../htmlmediaelement/playbackrate/index.html | 2 +- .../api/htmlmediaelement/srcobject/index.html | 2 +- .../web/api/htmloptionelement/index.html | 18 +++--- .../web/api/htmlparagraphelement/index.html | 2 +- .../web/api/htmlscriptelement/index.html | 32 +++++----- .../checkvalidity/index.html | 2 +- .../selectedindex/index.html | 6 +- .../zh-cn/web/api/htmlslotelement/index.html | 4 +- .../web/api/htmlslotelement/name/index.html | 8 +-- .../zh-cn/web/api/htmlstyleelement/index.html | 2 +- .../htmltableelement/createcaption/index.html | 2 +- .../zh-cn/web/api/htmltableelement/index.html | 18 +++--- .../web/api/htmltableelement/rows/index.html | 2 +- .../htmltemplateelement/content/index.html | 2 +- .../web/api/htmltemplateelement/index.html | 2 +- .../web/api/htmltextareaelement/index.html | 2 +- .../web/api/htmlunknownelement/index.html | 4 +- .../disablepictureinpicture/index.md | 2 +- .../enterpictureinpicture_event/index.md | 2 +- .../zh-cn/web/api/htmlvideoelement/index.html | 14 ++--- .../leavepictureinpicture_event/index.md | 2 +- .../requestpictureinpicture/index.md | 2 +- .../api/htmlvideoelement/videoheight/index.md | 16 ++--- .../api/htmlvideoelement/videowidth/index.md | 6 +- files/zh-cn/web/api/idbcursor/index.html | 2 +- files/zh-cn/web/api/idbcursorsync/index.html | 2 +- .../versionchange_event/index.html | 10 +-- files/zh-cn/web/api/idbenvironment/index.html | 10 +-- .../idbobjectstore/autoincrement/index.html | 6 +- .../web/api/idbobjectstore/get/index.html | 2 +- .../web/api/idbobjectstore/keypath/index.html | 6 +- files/zh-cn/web/api/idbtransaction/index.html | 4 +- files/zh-cn/web/api/imagebitmap/index.html | 2 +- .../imagebitmaprenderingcontext/index.html | 2 +- .../index.html | 10 +-- files/zh-cn/web/api/indexeddb_api/index.html | 4 +- .../indexeddb_api/using_indexeddb/index.html | 24 +++---- files/zh-cn/web/api/installevent/index.html | 2 +- .../api/intersection_observer_api/index.html | 4 +- .../web/api/keyboardevent/charcode/index.html | 2 +- files/zh-cn/web/api/keyboardevent/index.html | 4 +- .../api/keyboardevent/initkeyevent/index.html | 4 +- .../keyframeeffect/keyframeeffect/index.html | 2 +- files/zh-cn/web/api/location/href/index.html | 2 +- files/zh-cn/web/api/location/index.html | 2 +- .../zh-cn/web/api/location/replace/index.html | 4 +- .../media_source_extensions_api/index.html | 6 +- .../mediacapabilities/encodinginfo/index.html | 2 +- .../devicechange_event/index.html | 2 +- .../mediadevices/enumeratedevices/index.html | 2 +- .../mediadevices/getdisplaymedia/index.html | 8 +-- .../api/mediadevices/getusermedia/index.html | 2 +- .../api/mediaquerylist/addlistener/index.html | 4 +- files/zh-cn/web/api/mediaquerylist/index.html | 2 +- .../audiobitspersecond/index.html | 2 +- .../dataavailable_event/index.html | 2 +- files/zh-cn/web/api/mediarecorder/index.html | 2 +- .../mediarecorder/mediarecorder/index.html | 2 +- .../mediasource/addsourcebuffer/index.html | 2 +- .../web/api/mediastream/active/index.html | 2 +- .../web/api/mediastream/gettracks/index.html | 2 +- files/zh-cn/web/api/mediastream/index.html | 2 +- .../index.html | 2 +- .../zh-cn/web/api/mediastreamevent/index.html | 2 +- .../mediastreamtrack/readystate/index.html | 2 +- .../web/api/mediastreamtrack/stop/index.html | 4 +- files/zh-cn/web/api/messageevent/index.html | 2 +- .../web/api/mouseevent/clientx/index.html | 2 +- .../web/api/mouseevent/clienty/index.html | 2 +- .../api/mutationobserver/observe/index.html | 2 +- files/zh-cn/web/api/namednodemap/index.html | 4 +- .../using_navigation_timing/index.html | 2 +- .../web/api/navigator/clipboard/index.html | 2 +- files/zh-cn/web/api/navigator/index.html | 2 +- .../web/api/navigator/language/index.html | 4 +- .../registerprotocolhandler/index.html | 2 +- .../web/api/navigator/sendbeacon/index.md | 2 +- .../zh-cn/web/api/navigator/share/index.html | 2 +- .../web/api/networkinformation/index.html | 2 +- .../web/api/networkinformation/rtt/index.html | 2 +- files/zh-cn/web/api/node/baseuri/index.html | 6 +- .../zh-cn/web/api/node/childnodes/index.html | 2 +- files/zh-cn/web/api/node/index.html | 10 +-- .../web/api/node/insertbefore/index.html | 2 +- .../zh-cn/web/api/node/isequalnode/index.html | 2 +- files/zh-cn/web/api/node/nodetype/index.html | 6 +- files/zh-cn/web/api/nodeiterator/index.html | 2 +- .../api/notification/notification/index.html | 4 +- .../web/api/notifications_api/index.html | 2 +- .../api/oes_vertex_array_object/index.html | 2 +- .../web/api/offlineaudiocontext/index.html | 2 +- .../offlineaudiocontext/index.html | 2 +- .../zh-cn/web/api/offscreencanvas/index.html | 4 +- files/zh-cn/web/api/oscillatornode/index.html | 2 +- .../web/api/page_visibility_api/index.html | 4 +- files/zh-cn/web/api/path2d/index.html | 4 +- .../web/api/performance/measure/index.html | 8 +-- .../zh-cn/web/api/performance_api/index.html | 6 +- .../web/api/performance_property/index.html | 2 +- .../api/performanceentry/duration/index.html | 4 +- .../api/performanceentry/entrytype/index.html | 2 +- .../performancenavigationtiming/index.html | 2 +- .../performanceobserver/observe/index.html | 4 +- .../api/performanceresourcetiming/index.html | 12 ++-- .../using_the_permissions_api/index.html | 4 +- files/zh-cn/web/api/pointer_events/index.html | 4 +- .../zh-cn/web/api/pointer_lock_api/index.html | 4 +- files/zh-cn/web/api/push_api/index.html | 4 +- .../web/api/range/clonecontents/index.html | 2 +- .../zh-cn/web/api/range/collapsed/index.html | 2 +- .../zh-cn/web/api/range/endoffset/index.html | 2 +- .../web/api/range/extractcontents/index.html | 2 +- files/zh-cn/web/api/range/setend/index.html | 2 +- files/zh-cn/web/api/range/setstart/index.html | 2 +- .../readablestream/readablestream/index.html | 2 +- .../readablestreamdefaultcontroller/index.md | 4 +- .../cancel/index.md | 2 +- .../readablestreamdefaultreader/read/index.md | 4 +- .../readablestreamdefaultreader/index.md | 2 +- .../web/api/request/credentials/index.html | 6 +- .../web/api/resize_observer_api/index.html | 8 +-- .../web/api/resource_timing_api/index.html | 2 +- .../using_the_resource_timing_api/index.html | 2 +- files/zh-cn/web/api/response/blob/index.html | 2 +- files/zh-cn/web/api/response/clone/index.html | 4 +- files/zh-cn/web/api/response/error/index.html | 2 +- files/zh-cn/web/api/response/text/index.html | 4 +- files/zh-cn/web/api/response/type/index.html | 4 +- .../cantrickleicecandidates/index.html | 4 +- .../rtcpeerconnection/createoffer/index.html | 22 +++---- .../currentlocaldescription/index.html | 2 +- .../web/api/rtcpeerconnection/index.html | 8 +-- .../rtcpeerconnection/peeridentity/index.html | 2 +- files/zh-cn/web/api/rtcstatsreport/index.html | 2 +- .../web/api/screen/lockorientation/index.html | 2 +- .../web/api/scriptprocessornode/index.html | 2 +- .../web/api/server-sent_events/index.html | 2 +- .../using_server-sent_events/index.html | 2 +- .../web/api/service_worker_api/index.html | 2 +- .../using_service_workers/index.html | 26 ++++---- .../web/api/serviceworkercontainer/index.html | 6 +- .../register/index.html | 4 +- .../api/serviceworkerglobalscope/index.html | 2 +- files/zh-cn/web/api/settimeout/index.html | 2 +- files/zh-cn/web/api/sharedworker/index.html | 2 +- .../api/sourcebuffer/appendbuffer/index.html | 2 +- .../web/api/storage/removeitem/index.html | 2 +- files/zh-cn/web/api/storage_api/index.html | 6 +- files/zh-cn/web/api/storagemanager/index.html | 2 +- .../api/storagemanager/persisted/index.html | 2 +- .../web/api/streams_api/concepts/index.html | 4 +- .../using_readable_streams/index.html | 2 +- files/zh-cn/web/api/stylesheet/index.html | 2 +- files/zh-cn/web/api/subtlecrypto/index.html | 2 +- files/zh-cn/web/api/svgaelement/index.html | 8 +-- .../targetelement/index.html | 2 +- files/zh-cn/web/api/svgelement/index.html | 4 +- files/zh-cn/web/api/svgevent/index.html | 4 +- .../gettotallength/index.html | 6 +- .../api/svggraphicselement/getbbox/index.html | 2 +- .../web/api/svggraphicselement/index.html | 8 +-- files/zh-cn/web/api/svgsvgelement/index.html | 26 ++++---- files/zh-cn/web/api/svguseelement/index.html | 2 +- .../web/api/text/assignedslot/index.html | 2 +- .../iselementcontentwhitespace/index.html | 12 ++-- files/zh-cn/web/api/text/splittext/index.html | 8 +-- files/zh-cn/web/api/text/text/index.html | 6 +- files/zh-cn/web/api/text/wholetext/index.html | 18 +++--- files/zh-cn/web/api/textdecoder/index.html | 8 +-- .../api/textencoder/textencoder/index.html | 4 +- files/zh-cn/web/api/textrange/index.html | 28 ++++----- .../api/texttrack/cuechange_event/index.html | 4 +- files/zh-cn/web/api/timeranges/end/index.html | 2 +- files/zh-cn/web/api/timeranges/index.html | 2 +- .../web/api/timeranges/length/index.html | 2 +- .../zh-cn/web/api/timeranges/start/index.html | 2 +- files/zh-cn/web/api/touch/clientx/index.html | 2 +- files/zh-cn/web/api/touch/clienty/index.html | 2 +- files/zh-cn/web/api/touch/index.html | 2 +- .../zh-cn/web/api/transitionevent/index.html | 8 +-- .../keyboard_event_key_values/index.html | 16 ++--- files/zh-cn/web/api/uievent/detail/index.html | 2 +- .../zh-cn/web/api/uievent/uievent/index.html | 2 +- files/zh-cn/web/api/url/index.html | 12 ++-- files/zh-cn/web/api/url/search/index.html | 2 +- .../web/api/urlsearchparams/append/index.html | 4 +- .../api/urlsearchparams/entries/index.html | 2 +- .../web/api/urlsearchparams/keys/index.html | 2 +- .../web/api/urlsearchparams/values/index.html | 2 +- files/zh-cn/web/api/vibration_api/index.html | 2 +- .../web/api/waveshapernode/curve/index.html | 4 +- files/zh-cn/web/api/waveshapernode/index.html | 2 +- .../api/waveshapernode/oversample/index.html | 6 +- .../web/api/web_animations_api/index.html | 14 ++--- .../keyframe_formats/index.html | 4 +- .../using_the_web_animations_api/index.html | 48 +++++++------- .../index.html | 6 +- .../web_audio_api/best_practices/index.html | 2 +- files/zh-cn/web/api/web_audio_api/index.html | 4 +- .../using_web_audio_api/index.html | 8 +-- .../index.html | 2 +- .../web/api/web_authentication_api/index.html | 2 +- files/zh-cn/web/api/web_speech_api/index.html | 2 +- .../using_the_web_speech_api/index.html | 4 +- .../zh-cn/web/api/web_storage_api/index.html | 2 +- .../using_the_web_storage_api/index.html | 2 +- .../zh-cn/web/api/web_workers_api/index.html | 8 +-- .../using_web_workers/index.html | 6 +- .../beginquery/index.html | 4 +- .../bindbufferbase/index.html | 2 +- .../createsampler/index.html | 2 +- .../teximage3d/index.html | 4 +- .../uniformmatrix/index.html | 2 +- .../basic_2d_animation_example/index.html | 4 +- .../by_example/hello_glsl/index.html | 2 +- .../web/api/webgl_api/constants/index.html | 8 +-- files/zh-cn/web/api/webgl_api/index.html | 6 +- .../matrix_math_for_the_web/index.html | 10 +-- .../index.html | 12 ++-- .../getting_started_with_webgl/index.html | 8 +-- .../web/api/webgl_api/tutorial/index.html | 2 +- .../tutorial/lighting_in_webgl/index.html | 4 +- .../using_textures_in_webgl/index.html | 2 +- .../webgl_api/webgl_best_practices/index.html | 4 +- .../webgl_model_view_projection/index.html | 6 +- .../webgl_lose_context/losecontext/index.html | 2 +- .../restorecontext/index.html | 2 +- files/zh-cn/web/api/webglbuffer/index.html | 2 +- .../zh-cn/web/api/webglframebuffer/index.html | 2 +- files/zh-cn/web/api/webglprogram/index.html | 2 +- .../web/api/webglrenderbuffer/index.html | 2 +- .../activetexture/index.html | 2 +- .../bindattriblocation/index.html | 2 +- .../bindbuffer/index.html | 4 +- .../bindframebuffer/index.html | 2 +- .../bindrenderbuffer/index.html | 4 +- .../bindtexture/index.html | 4 +- .../blendequation/index.html | 4 +- .../blendfunc/index.html | 2 +- .../cleardepth/index.html | 2 +- .../compressedteximage2d/index.html | 2 +- .../depthfunc/index.html | 2 +- .../drawarrays/index.html | 2 +- .../drawingbufferheight/index.html | 2 +- .../getattriblocation/index.html | 2 +- .../web/api/webglrenderingcontext/index.html | 2 +- .../pixelstorei/index.html | 2 +- .../teximage2d/index.html | 2 +- .../validateprogram/index.html | 2 +- files/zh-cn/web/api/webglshader/index.html | 4 +- files/zh-cn/web/api/webgltexture/index.html | 2 +- .../web/api/webrtc_api/adapter.js/index.html | 2 +- .../api/webrtc_api/connectivity/index.html | 24 +++---- .../web/api/webrtc_api/protocols/index.html | 4 +- .../webrtc_api/session_lifetime/index.html | 28 ++++----- .../signaling_and_video_calling/index.html | 4 +- .../simple_rtcdatachannel_sample/index.html | 22 +++---- .../webrtc_api/taking_still_photos/index.html | 28 ++++----- .../zh-cn/web/api/websocket/close/index.html | 2 +- .../index.html | 4 +- .../index.html | 2 +- .../writing_websocket_server/index.html | 4 +- .../writing_websocket_servers/index.html | 30 ++++----- files/zh-cn/web/api/webvr_api/index.html | 2 +- .../webvr_api/using_the_webvr_api/index.html | 4 +- files/zh-cn/web/api/webvtt_api/index.html | 2 +- .../zh-cn/web/api/webxr_device_api/index.html | 2 +- files/zh-cn/web/api/window/back/index.html | 2 +- .../web/api/window/blur_event/index.html | 2 +- files/zh-cn/web/api/window/closed/index.html | 2 +- .../web/api/window/copy_event/index.html | 2 +- .../api/window/devicepixelratio/index.html | 10 +-- .../web/api/window/dialogarguments/index.html | 2 +- .../zh-cn/web/api/window/document/index.html | 2 +- .../web/api/window/focus_event/index.html | 2 +- .../web/api/window/fullscreen/index.html | 2 +- .../api/window/getcomputedstyle/index.html | 12 ++-- .../web/api/window/getselection/index.html | 2 +- .../web/api/window/load_event/index.html | 4 +- .../web/api/window/localstorage/index.html | 4 +- .../zh-cn/web/api/window/location/index.html | 2 +- .../web/api/window/mozinnerscreenx/index.html | 2 +- .../zh-cn/web/api/window/navigator/index.html | 2 +- .../web/api/window/ondragdrop/index.html | 6 +- files/zh-cn/web/api/window/open/index.html | 2 +- .../web/api/window/postmessage/index.html | 12 ++-- .../window/requestanimationframe/index.html | 2 +- .../api/window/requestidlecallback/index.html | 2 +- .../web/api/window/sizetocontent/index.html | 2 +- .../unhandledrejection_event/index.html | 2 +- .../api/windoworworkerglobalscope/index.html | 8 +-- .../api/worker/messageerror_event/index.html | 2 +- files/zh-cn/web/api/worker/worker/index.html | 2 +- .../web/api/workerglobalscope/index.html | 2 +- .../web/api/workerglobalscope/self/index.html | 4 +- files/zh-cn/web/api/writablestream/index.md | 2 +- .../writablestream/writablestream/index.md | 2 +- .../api/xmlhttprequest/error_event/index.html | 2 +- .../getallresponseheaders/index.html | 2 +- .../getresponseheader/index.html | 2 +- .../html_in_xmlhttprequest/index.html | 6 +- .../api/xmlhttprequest/load_event/index.html | 2 +- .../xmlhttprequest/loadend_event/index.html | 2 +- .../api/xmlhttprequest/readystate/index.html | 4 +- .../api/xmlhttprequest/responsexml/index.html | 2 +- .../web/api/xmlhttprequest/send/index.html | 4 +- .../index.html | 4 +- .../index.html | 6 +- .../using_xmlhttprequest/index.html | 10 +-- .../using_xmlhttprequest_in_ie6/index.html | 2 +- .../web/css/-moz-outline-radius/index.html | 2 +- .../zh-cn/web/css/-moz-user-input/index.html | 2 +- .../web/css/-webkit-touch-callout/index.html | 2 +- files/zh-cn/web/css/@charset/index.html | 2 +- .../additive-symbols/index.html | 2 +- files/zh-cn/web/css/@counter-style/index.html | 2 +- .../web/css/@counter-style/pad/index.html | 2 +- files/zh-cn/web/css/@font-face/index.html | 4 +- files/zh-cn/web/css/@import/index.html | 2 +- files/zh-cn/web/css/@layer/index.md | 2 +- files/zh-cn/web/css/@media/index.html | 6 +- .../css/@property/initial-value/index.html | 4 +- .../zh-cn/web/css/@property/syntax/index.html | 2 +- files/zh-cn/web/css/_colon_dir/index.html | 2 +- .../web/css/_colon_first-of-type/index.html | 2 +- files/zh-cn/web/css/_colon_first/index.html | 4 +- files/zh-cn/web/css/_colon_focus/index.html | 2 +- files/zh-cn/web/css/_colon_hover/index.html | 2 +- files/zh-cn/web/css/_colon_is/index.html | 2 +- files/zh-cn/web/css/_colon_lang/index.html | 2 +- .../web/css/_colon_nth-last-child/index.html | 4 +- .../css/_colon_placeholder-shown/index.html | 2 +- .../zh-cn/web/css/_colon_required/index.html | 2 +- files/zh-cn/web/css/_colon_right/index.html | 2 +- files/zh-cn/web/css/_colon_valid/index.html | 2 +- files/zh-cn/web/css/_colon_visited/index.html | 4 +- files/zh-cn/web/css/_colon_where/index.html | 2 +- .../css/_doublecolon_first-letter/index.html | 8 +-- .../web/css/_doublecolon_slotted/index.html | 2 +- files/zh-cn/web/css/basic-shape/index.html | 2 +- files/zh-cn/web/css/color_value/index.html | 2 +- files/zh-cn/web/css/index.html | 22 +++---- files/zh-cn/web/css/integer/index.html | 2 +- files/zh-cn/web/css/text-overflow/index.md | 4 +- files/zh-cn/web/css/tutorials/index.html | 2 +- .../creating_and_triggering_events/index.html | 2 +- .../detecting_device_orientation/index.html | 4 +- files/zh-cn/web/events/index.html | 2 +- .../index.html | 6 +- .../web/guide/ajax/getting_started/index.html | 16 ++--- files/zh-cn/web/guide/ajax/index.html | 4 +- .../buffering_seeking_time_ranges/index.html | 2 +- .../guide/audio_and_video_delivery/index.html | 6 +- .../index.html | 2 +- files/zh-cn/web/guide/graphics/index.html | 2 +- .../guide/html/content_categories/index.html | 4 +- .../guide/html/editable_content/index.html | 2 +- files/zh-cn/web/guide/index.html | 2 +- files/zh-cn/web/guide/mobile/index.html | 2 +- .../html/attributes/autocomplete/index.html | 58 ++++++++--------- .../html/attributes/crossorigin/index.html | 2 +- files/zh-cn/web/html/attributes/index.html | 2 +- .../web/html/attributes/pattern/index.md | 2 +- files/zh-cn/web/html/element/a/index.html | 12 ++-- files/zh-cn/web/html/element/abbr/index.html | 4 +- .../zh-cn/web/html/element/acronym/index.html | 2 +- .../zh-cn/web/html/element/applet/index.html | 2 +- files/zh-cn/web/html/element/area/index.html | 8 +-- files/zh-cn/web/html/element/aside/index.html | 2 +- files/zh-cn/web/html/element/audio/index.html | 6 +- files/zh-cn/web/html/element/bdi/index.html | 4 +- .../zh-cn/web/html/element/bgsound/index.html | 4 +- .../zh-cn/web/html/element/button/index.html | 4 +- .../zh-cn/web/html/element/caption/index.html | 4 +- files/zh-cn/web/html/element/cite/index.html | 2 +- files/zh-cn/web/html/element/col/index.html | 4 +- files/zh-cn/web/html/element/data/index.html | 2 +- files/zh-cn/web/html/element/dir/index.html | 2 +- files/zh-cn/web/html/element/div/index.html | 4 +- files/zh-cn/web/html/element/dl/index.html | 2 +- files/zh-cn/web/html/element/dt/index.html | 2 +- files/zh-cn/web/html/element/em/index.html | 2 +- files/zh-cn/web/html/element/font/index.html | 4 +- .../zh-cn/web/html/element/footer/index.html | 2 +- files/zh-cn/web/html/element/form/index.html | 4 +- .../html/element/heading_elements/index.html | 6 +- files/zh-cn/web/html/element/html/index.html | 4 +- .../zh-cn/web/html/element/iframe/index.html | 4 +- files/zh-cn/web/html/element/img/index.html | 4 +- .../web/html/element/input/date/index.html | 6 +- .../element/input/datetime-local/index.html | 6 +- .../web/html/element/input/email/index.html | 14 ++--- .../web/html/element/input/file/index.html | 8 +-- .../web/html/element/input/hidden/index.html | 12 ++-- files/zh-cn/web/html/element/input/index.html | 8 +-- .../web/html/element/input/month/index.html | 4 +- .../web/html/element/input/number/index.html | 16 ++--- .../html/element/input/password/index.html | 20 +++--- .../web/html/element/input/radio/index.html | 2 +- .../web/html/element/input/range/index.html | 40 ++++++------ .../web/html/element/input/reset/index.html | 10 +-- .../web/html/element/input/search/index.html | 44 ++++++------- .../web/html/element/input/submit/index.html | 38 ++++++------ .../web/html/element/input/tel/index.html | 6 +- .../web/html/element/input/text/index.html | 52 ++++++++-------- .../web/html/element/input/time/index.html | 4 +- .../web/html/element/input/week/index.html | 42 ++++++------- files/zh-cn/web/html/element/label/index.html | 4 +- files/zh-cn/web/html/element/li/index.html | 2 +- files/zh-cn/web/html/element/link/index.html | 36 +++++------ files/zh-cn/web/html/element/menu/index.html | 2 +- files/zh-cn/web/html/element/meta/index.html | 4 +- .../web/html/element/meta/name/index.html | 2 +- files/zh-cn/web/html/element/nav/index.html | 2 +- .../zh-cn/web/html/element/noembed/index.html | 2 +- .../web/html/element/noscript/index.html | 2 +- .../zh-cn/web/html/element/object/index.html | 4 +- files/zh-cn/web/html/element/ol/index.html | 4 +- files/zh-cn/web/html/element/param/index.html | 2 +- files/zh-cn/web/html/element/rb/index.html | 6 +- .../zh-cn/web/html/element/script/index.html | 2 +- .../zh-cn/web/html/element/section/index.html | 2 +- .../zh-cn/web/html/element/select/index.html | 8 +-- files/zh-cn/web/html/element/slot/index.html | 2 +- .../zh-cn/web/html/element/spacer/index.html | 2 +- .../zh-cn/web/html/element/strong/index.html | 4 +- files/zh-cn/web/html/element/style/index.html | 4 +- files/zh-cn/web/html/element/table/index.html | 16 ++--- .../web/html/element/textarea/index.html | 2 +- files/zh-cn/web/html/element/tfoot/index.html | 2 +- files/zh-cn/web/html/element/th/index.html | 6 +- files/zh-cn/web/html/element/time/index.html | 8 +-- files/zh-cn/web/html/element/title/index.html | 14 ++--- files/zh-cn/web/html/element/track/index.html | 2 +- files/zh-cn/web/html/element/u/index.html | 4 +- files/zh-cn/web/html/element/ul/index.html | 2 +- files/zh-cn/web/html/element/video/index.html | 20 +++--- .../global_attributes/contextmenu/index.html | 2 +- .../global_attributes/data-_star_/index.html | 2 +- .../global_attributes/draggable/index.html | 2 +- .../html/global_attributes/hidden/index.html | 2 +- .../web/html/global_attributes/index.html | 10 +-- .../global_attributes/itemprop/index.html | 6 +- .../global_attributes/itemscope/index.html | 4 +- .../html/global_attributes/lang/index.html | 2 +- .../html/global_attributes/part/index.html | 2 +- files/zh-cn/web/html/link_types/index.html | 10 +-- files/zh-cn/web/html/microdata/index.html | 6 +- files/zh-cn/web/html/reference/index.html | 2 +- .../zh-cn/web/http/authentication/index.html | 8 +-- .../index.html | 2 +- .../evolution_of_http/index.html | 12 ++-- .../index.html | 2 +- .../zh-cn/web/http/basics_of_http/index.html | 6 +- .../http/basics_of_http/mime_types/index.html | 8 +-- .../web/http/content_negotiation/index.html | 4 +- files/zh-cn/web/http/cookies/index.html | 4 +- .../index.html | 4 +- .../cors/errors/corsdidnotsucceed/index.html | 4 +- .../corsexternalredirectnotallowed/index.html | 2 +- .../cors/errors/corsmethodnotfound/index.html | 2 +- .../corsmissingallowcredentials/index.html | 4 +- .../errors/corsmissingalloworigin/index.html | 4 +- .../index.html | 2 +- .../corsnotsupportingcredentials/index.html | 2 +- .../cors/errors/corsrequestnothttp/index.html | 4 +- files/zh-cn/web/http/cors/errors/index.html | 8 +-- files/zh-cn/web/http/cors/index.md | 8 +-- files/zh-cn/web/http/csp/index.html | 6 +- .../zh-cn/web/http/feature_policy/index.html | 2 +- .../http/headers/accept-charset/index.html | 6 +- .../http/headers/accept-language/index.html | 2 +- .../zh-cn/web/http/headers/accept/index.html | 4 +- .../access-control-allow-headers/index.html | 2 +- .../zh-cn/web/http/headers/alt-svc/index.html | 2 +- .../http/headers/clear-site-data/index.html | 2 +- .../http/headers/content-encoding/index.md | 4 +- .../default-src/index.html | 6 +- .../content-security-policy/index.html | 2 +- files/zh-cn/web/http/headers/date/index.html | 2 +- .../web/http/headers/device-memory/index.html | 2 +- files/zh-cn/web/http/headers/dnt/index.html | 2 +- .../web/http/headers/early-data/index.html | 2 +- files/zh-cn/web/http/headers/etag/index.html | 8 +-- .../zh-cn/web/http/headers/expires/index.html | 2 +- .../http/headers/if-modified-since/index.html | 2 +- .../web/http/headers/if-none-match/index.html | 2 +- files/zh-cn/web/http/headers/index.html | 2 +- .../web/http/headers/last-modified/index.html | 2 +- .../web/http/headers/location/index.html | 4 +- .../http/headers/public-key-pins/index.html | 2 +- .../http/headers/referrer-policy/index.html | 2 +- .../web/http/headers/save-data/index.html | 4 +- .../headers/sec-websocket-accept/index.html | 2 +- .../web/http/headers/set-cookie/index.html | 2 +- .../strict-transport-security/index.html | 2 +- files/zh-cn/web/http/headers/te/index.html | 4 +- files/zh-cn/web/http/headers/tk/index.html | 2 +- files/zh-cn/web/http/headers/via/index.html | 2 +- .../zh-cn/web/http/headers/warning/index.html | 2 +- .../http/headers/www-authenticate/index.html | 2 +- .../http/headers/x-forwarded-proto/index.html | 2 +- .../http/headers/x-xss-protection/index.html | 8 +-- .../web/http/link_prefetching_faq/index.html | 14 ++--- files/zh-cn/web/http/messages/index.html | 12 ++-- files/zh-cn/web/http/methods/head/index.html | 2 +- files/zh-cn/web/http/methods/patch/index.html | 2 +- files/zh-cn/web/http/methods/trace/index.html | 4 +- files/zh-cn/web/http/overview/index.html | 4 +- .../protocol_upgrade_mechanism/index.html | 2 +- .../index.html | 2 +- .../web/http/public_key_pinning/index.html | 12 ++-- .../zh-cn/web/http/range_requests/index.html | 4 +- files/zh-cn/web/http/redirections/index.html | 16 ++--- files/zh-cn/web/http/status/301/index.html | 2 +- files/zh-cn/web/http/status/400/index.html | 2 +- files/zh-cn/web/http/status/401/index.html | 2 +- files/zh-cn/web/http/status/402/index.html | 2 +- files/zh-cn/web/http/status/404/index.html | 2 +- files/zh-cn/web/http/status/index.md | 6 +- .../index.html | 10 +-- .../zh-cn/web/javascript/closures/index.html | 2 +- .../web/javascript/data_structures/index.md | 2 +- .../index.html | 2 +- .../index.html | 12 ++-- .../zh-cn/web/javascript/eventloop/index.html | 4 +- .../index.html | 6 +- .../details_of_the_object_model/index.html | 4 +- .../expressions_and_operators/index.html | 30 ++++----- .../web/javascript/guide/functions/index.html | 2 +- .../guide/grammar_and_types/index.html | 16 ++--- .../guide/indexed_collections/index.html | 10 +-- .../javascript/guide/introduction/index.html | 8 +-- .../guide/iterators_and_generators/index.html | 16 ++--- .../guide/loops_and_iteration/index.html | 30 ++++----- .../guide/meta_programming/index.html | 2 +- .../web/javascript/guide/modules/index.html | 16 ++--- .../guide/numbers_and_dates/index.html | 2 +- .../regular_expressions/assertions/index.html | 14 ++--- .../character_classes/index.html | 2 +- .../groups_and_ranges/index.html | 10 +-- .../guide/regular_expressions/index.html | 18 +++--- .../unicode_property_escapes/index.html | 2 +- .../guide/text_formatting/index.html | 10 +-- .../guide/using_promises/index.html | 6 +- .../guide/working_with_objects/index.html | 8 +-- files/zh-cn/web/javascript/index.html | 2 +- .../index.html | 18 +++--- .../javascript/memory_management/index.html | 2 +- .../web/javascript/reference/about/index.html | 6 +- .../reference/classes/constructor/index.html | 2 +- .../javascript/reference/classes/index.html | 8 +-- .../classes/public_class_fields/index.html | 32 +++++----- .../reference/classes/static/index.html | 2 +- .../errors/already_has_pragma/index.html | 2 +- .../reference/errors/bad_octal/index.html | 2 +- .../errors/bad_return_or_yield/index.html | 2 +- .../errors/cant_access_property/index.html | 2 +- .../index.html | 2 +- .../errors/delete_in_strict_mode/index.html | 2 +- .../errors/equal_as_assign/index.html | 6 +- .../index.html | 2 +- .../javascript/reference/errors/index.html | 2 +- .../invalid_for-in_initializer/index.html | 2 +- .../index.html | 2 +- .../errors/is_not_iterable/index.html | 2 +- .../malformed_formal_parameter/index.html | 4 +- .../index.html | 2 +- .../missing_formal_parameter/index.html | 2 +- .../index.html | 4 +- .../index.html | 2 +- .../reference/errors/no_properties/index.html | 4 +- .../errors/not_a_constructor/index.html | 2 +- .../errors/not_a_function/index.html | 4 +- .../reference/errors/not_defined/index.html | 2 +- .../errors/redeclared_parameter/index.html | 2 +- .../resulting_string_too_large/index.html | 2 +- .../strict_non_simple_params/index.html | 6 +- .../errors/unexpected_token/index.html | 4 +- .../errors/unexpected_type/index.html | 6 +- .../errors/var_hides_argument/index.html | 2 +- .../reference/functions/arguments/index.html | 2 +- .../functions/arrow_functions/index.html | 6 +- .../reference/functions/get/index.html | 2 +- .../javascript/reference/functions/index.html | 2 +- .../reference/functions/set/index.html | 2 +- .../global_objects/array/concat/index.html | 4 +- .../global_objects/array/findindex/index.html | 8 +-- .../global_objects/array/foreach/index.html | 2 +- .../global_objects/array/from/index.html | 4 +- .../global_objects/array/indexof/index.html | 4 +- .../array/lastindexof/index.html | 2 +- .../global_objects/array/length/index.html | 2 +- .../global_objects/array/reduce/index.md | 4 +- .../global_objects/array/shift/index.html | 12 ++-- .../global_objects/array/slice/index.html | 2 +- .../global_objects/array/sort/index.html | 6 +- .../global_objects/array/splice/index.html | 18 +++--- .../arraybuffer/bytelength/index.html | 2 +- .../arraybuffer/slice/index.html | 2 +- .../global_objects/atomics/and/index.html | 2 +- .../global_objects/bigint/bigint/index.html | 2 +- .../bigint/tolocalestring/index.html | 2 +- .../global_objects/boolean/index.html | 8 +-- .../boolean/tosource/index.html | 2 +- .../global_objects/date/getday/index.html | 2 +- .../date/getfullyear/index.html | 2 +- .../global_objects/date/getmonth/index.html | 2 +- .../reference/global_objects/date/index.html | 4 +- .../global_objects/date/parse/index.html | 14 ++--- .../date/setutcfullyear/index.html | 2 +- .../date/setutcseconds/index.html | 2 +- .../global_objects/date/tojson/index.html | 2 +- .../date/tolocaledatestring/index.html | 2 +- .../global_objects/date/tostring/index.html | 2 +- .../date/totimestring/index.html | 2 +- .../global_objects/date/utc/index.html | 2 +- .../global_objects/error/stack/index.html | 4 +- .../global_objects/escape/index.html | 2 +- .../reference/global_objects/eval/index.html | 10 +-- .../finalizationregistry/index.html | 2 +- .../global_objects/float32array/index.html | 16 ++--- .../global_objects/float64array/index.html | 12 ++-- .../global_objects/function/apply/index.md | 4 +- .../global_objects/function/bind/index.html | 4 +- .../global_objects/function/length/index.html | 4 +- .../global_objects/function/name/index.html | 6 +- .../global_objects/generator/next/index.html | 2 +- .../global_objects/generator/throw/index.html | 2 +- .../global_objects/infinity/index.html | 2 +- .../global_objects/int8array/index.html | 2 +- .../global_objects/intl/collator/index.html | 18 +++--- .../intl/datetimeformat/index.html | 2 +- .../reference/global_objects/intl/index.html | 6 +- .../global_objects/intl/listformat/index.html | 4 +- .../intl/numberformat/index.html | 8 +-- .../reference/global_objects/isnan/index.html | 6 +- .../reference/global_objects/json/index.html | 2 +- .../global_objects/map/map/index.html | 2 +- .../global_objects/math/abs/index.html | 2 +- .../global_objects/math/pow/index.html | 2 +- .../global_objects/math/random/index.html | 2 +- .../global_objects/math/round/index.html | 2 +- .../global_objects/number/index.html | 4 +- .../number/negative_infinity/index.html | 2 +- .../global_objects/number/parseint/index.html | 2 +- .../number/positive_infinity/index.html | 2 +- .../number/toexponential/index.html | 2 +- .../global_objects/number/tofixed/index.html | 2 +- .../number/tolocalestring/index.html | 2 +- .../object/defineproperty/index.html | 2 +- .../object/fromentries/index.html | 4 +- .../getownpropertydescriptor/index.html | 2 +- .../getownpropertydescriptors/index.html | 2 +- .../object/getownpropertysymbols/index.html | 2 +- .../global_objects/object/index.html | 2 +- .../object/isextensible/index.html | 2 +- .../global_objects/object/issealed/index.html | 6 +- .../object/preventextensions/index.html | 2 +- .../global_objects/object/proto/index.html | 2 +- .../object/tolocalestring/index.html | 2 +- .../global_objects/object/valueof/index.html | 4 +- .../global_objects/parseint/index.html | 2 +- .../promise/allsettled/index.html | 2 +- .../global_objects/promise/any/index.html | 6 +- .../global_objects/promise/catch/index.html | 2 +- .../reference/global_objects/promise/index.md | 2 +- .../global_objects/promise/resolve/index.html | 2 +- .../reference/global_objects/proxy/index.html | 6 +- .../proxy/proxy/defineproperty/index.html | 2 +- .../global_objects/proxy/proxy/index.html | 2 +- .../proxy/proxy/isextensible/index.html | 2 +- .../proxy/proxy/ownkeys/index.html | 2 +- .../reflect/construct/index.html | 4 +- .../reflect/defineproperty/index.html | 2 +- .../getownpropertydescriptor/index.html | 2 +- .../global_objects/reflect/has/index.html | 2 +- .../global_objects/reflect/index.html | 2 +- .../reflect/preventextensions/index.html | 2 +- .../global_objects/regexp/@@search/index.html | 2 +- .../global_objects/regexp/compile/index.html | 2 +- .../global_objects/regexp/exec/index.html | 2 +- .../global_objects/regexp/sticky/index.html | 4 +- .../global_objects/regexp/test/index.html | 4 +- .../global_objects/regexp/tosource/index.html | 2 +- .../global_objects/set/entries/index.html | 2 +- .../reference/global_objects/set/index.html | 4 +- .../sharedarraybuffer/bytelength/index.html | 2 +- .../global_objects/string/blink/index.html | 2 +- .../global_objects/string/bold/index.html | 2 +- .../string/fromcharcode/index.html | 2 +- .../global_objects/string/index.html | 8 +-- .../global_objects/string/indexof/index.html | 2 +- .../string/lastindexof/index.html | 4 +- .../string/localecompare/index.html | 4 +- .../global_objects/string/match/index.html | 2 +- .../global_objects/string/replace/index.html | 4 +- .../string/replaceall/index.html | 2 +- .../global_objects/string/small/index.html | 2 +- .../global_objects/string/split/index.html | 2 +- .../global_objects/string/strike/index.html | 2 +- .../global_objects/string/trimend/index.html | 2 +- .../string/trimstart/index.html | 2 +- .../global_objects/symbol/index.html | 4 +- .../symbol/isconcatspreadable/index.html | 4 +- .../global_objects/symbol/keyfor/index.html | 2 +- .../global_objects/symbol/tosource/index.html | 4 +- .../symbol/unscopables/index.html | 6 +- .../typedarray/@@iterator/index.html | 2 +- .../typedarray/@@species/index.html | 2 +- .../typedarray/filter/index.html | 4 +- .../global_objects/typedarray/find/index.html | 2 +- .../typedarray/findindex/index.html | 2 +- .../typedarray/foreach/index.html | 6 +- .../global_objects/typedarray/index.html | 2 +- .../typedarray/indexof/index.html | 2 +- .../typedarray/lastindexof/index.html | 2 +- .../global_objects/typedarray/map/index.html | 6 +- .../typedarray/reduce/index.html | 2 +- .../typedarray/reduceright/index.html | 2 +- .../typedarray/slice/index.html | 2 +- .../typedarray/tolocalestring/index.html | 2 +- .../global_objects/uint16array/index.html | 34 +++++----- .../global_objects/uint32array/index.html | 4 +- .../global_objects/uint8array/index.html | 8 +-- .../global_objects/weakset/add/index.html | 2 +- .../global_objects/weakset/has/index.html | 2 +- .../global_objects/weakset/index.html | 8 +-- .../webassembly/compileerror/index.html | 4 +- .../global_objects/webassembly/index.html | 4 +- .../webassembly/instance/index.html | 2 +- .../webassembly/instantiate/index.html | 6 +- .../webassembly/runtimeerror/index.html | 6 +- .../reference/iteration_protocols/index.html | 8 +-- .../operators/bitwise_and/index.html | 2 +- .../operators/conditional_operator/index.html | 2 +- .../reference/operators/delete/index.html | 4 +- .../reference/operators/function/index.html | 2 +- .../reference/operators/increment/index.html | 4 +- .../javascript/reference/operators/index.html | 2 +- .../reference/operators/inequality/index.html | 2 +- .../reference/operators/new/index.html | 4 +- .../operators/object_initializer/index.html | 4 +- .../operators/property_accessors/index.html | 2 +- .../operators/spread_syntax/index.html | 8 +-- .../reference/operators/this/index.html | 2 +- .../reference/operators/void/index.html | 2 +- .../reference/operators/yield/index.html | 2 +- .../statements/async_function/index.html | 6 +- .../reference/statements/block/index.html | 2 +- .../reference/statements/const/index.html | 2 +- .../reference/statements/continue/index.html | 4 +- .../reference/statements/debugger/index.html | 2 +- .../reference/statements/empty/index.html | 2 +- .../reference/statements/export/index.html | 2 +- .../reference/statements/import/index.html | 4 +- .../reference/statements/index.html | 2 +- .../reference/statements/label/index.html | 2 +- .../reference/statements/let/index.md | 4 +- .../reference/statements/switch/index.html | 6 +- .../statements/try...catch/index.html | 2 +- .../reference/strict_mode/index.html | 8 +-- .../reference/template_literals/index.html | 2 +- .../reference/trailing_commas/index.html | 4 +- files/zh-cn/web/manifest/index.html | 26 ++++---- files/zh-cn/web/mathml/attribute/index.html | 2 +- .../zh-cn/web/mathml/element/math/index.html | 2 +- .../index.html | 4 +- files/zh-cn/web/media/formats/index.html | 2 +- .../critical_rendering_path/index.html | 6 +- .../performance/how_browsers_work/index.md | 6 +- files/zh-cn/web/performance/index.html | 10 +-- .../web/performance/lazy_loading/index.html | 2 +- .../optimizing_startup_performance/index.html | 4 +- .../add_to_home_screen/index.html | 4 +- .../app_structure/index.html | 4 +- .../installable_pwas/index.html | 2 +- .../introduction/index.html | 8 +-- .../offline_service_workers/index.html | 4 +- .../security/same-origin_policy/index.html | 6 +- .../security/securing_your_site/index.html | 4 +- .../transport_layer_security/index.html | 2 +- .../index.html | 12 ++-- .../web/svg/attribute/font-family/index.html | 2 +- files/zh-cn/web/svg/attribute/id/index.html | 4 +- files/zh-cn/web/svg/attribute/index.html | 2 +- .../web/svg/attribute/marker-end/index.html | 2 +- .../web/svg/attribute/marker-start/index.html | 2 +- files/zh-cn/web/svg/attribute/mask/index.html | 2 +- .../svg/attribute/pointer-events/index.html | 2 +- .../attribute/preserveaspectratio/index.html | 2 +- .../attribute/stroke-dashoffset/index.html | 2 +- .../svg/attribute/stroke-linejoin/index.html | 6 +- .../web/svg/attribute/text-anchor/index.html | 2 +- .../web/svg/attribute/transform/index.html | 2 +- .../zh-cn/web/svg/attribute/values/index.html | 8 +-- .../svg/attribute/vector-effect/index.html | 2 +- .../web/svg/attribute/viewbox/index.html | 2 +- files/zh-cn/web/svg/content_type/index.html | 8 +-- files/zh-cn/web/svg/element/defs/index.html | 2 +- files/zh-cn/web/svg/element/set/index.html | 2 +- files/zh-cn/web/svg/element/svg/index.html | 2 +- files/zh-cn/web/svg/element/switch/index.html | 2 +- .../zh-cn/web/svg/element/textpath/index.html | 2 +- files/zh-cn/web/svg/element/tref/index.html | 2 +- files/zh-cn/web/svg/linking/index.html | 2 +- .../svg/namespaces_crash_course/index.html | 6 +- .../web/svg/tutorial/basic_shapes/index.html | 2 +- .../svg/tutorial/getting_started/index.html | 14 ++--- files/zh-cn/web/svg/tutorial/paths/index.html | 4 +- .../web/svg/tutorial/svg_and_css/index.html | 4 +- files/zh-cn/web/web_components/index.html | 8 +-- .../using_shadow_dom/index.html | 2 +- .../using_templates_and_slots/index.html | 6 +- .../zh-cn/web/xml/xml_introduction/index.html | 2 +- .../index.html | 6 +- 1012 files changed, 2393 insertions(+), 2393 deletions(-) diff --git a/files/zh-cn/glossary/udp/index.md b/files/zh-cn/glossary/udp/index.md index e9879c1940ca06..ae002c446acd9a 100644 --- a/files/zh-cn/glossary/udp/index.md +++ b/files/zh-cn/glossary/udp/index.md @@ -11,7 +11,7 @@ translation_of: Glossary/UDP --- **UDP**(用户数据报协议)是一个与 {{glossary("IPv6","IP 协议")}} 一起使用的长期{{glossary("protocol", "协议")}},用于在传输速度和效率比安全性和可靠性更重要的场合下发送数据。 -UDP 使用一个简单的、具有最小协议机制的[无连接通信](https://zh.wikipedia.org/wiki/無連接式通訊)模型。UDP 使用[校验和](https://zh.wikipedia.org/wiki/校验和)保证数据完整性,使用[端口号](https://zh.wikipedia.org/wiki/通訊埠)以区分数据发送方和接收方中不同的应用程序。它无需[握手](https://zh.wikipedia.org/wiki/握手_(技术))会话,即将不[可靠](https://zh.wikipedia.org/wiki/可靠性_(计算机网络))的底层网络直接暴露给了用户的应用程序:不保证消息交付、不保证交付顺序也不保证消息不重复。如果需要网络接口层面的纠错功能,则应用程序可以使用为此目的设计的[传输控制协议(TCP)](https://zh.wikipedia.org/wiki/传输控制协议)或者[流控制传输协议(SCTP)](https://zh.wikipedia.org/wiki/流控制传输协议)。 +UDP 使用一个简单的、具有最小协议机制的[无连接通信](https://zh.wikipedia.org/wiki/無連接式通訊)模型。UDP 使用[校验和](https://zh.wikipedia.org/wiki/校验和)保证数据完整性,使用[端口号](https://zh.wikipedia.org/wiki/通訊埠)以区分数据发送方和接收方中不同的应用程序。它无需[握手](https://zh.wikipedia.org/wiki/握手_(技术)) 会话,即将不[可靠](https://zh.wikipedia.org/wiki/可靠性_(计算机网络)) 的底层网络直接暴露给了用户的应用程序:不保证消息交付、不保证交付顺序也不保证消息不重复。如果需要网络接口层面的纠错功能,则应用程序可以使用为此目的设计的[传输控制协议(TCP)](https://zh.wikipedia.org/wiki/传输控制协议)或者[流控制传输协议(SCTP)](https://zh.wikipedia.org/wiki/流控制传输协议)。 UDP 适用于不需要差错和纠错的应用程序,它的[协议栈](https://zh.wikipedia.org/wiki/协议栈)避免了处理此类问题的开销。对时间敏感的应用程序通常使用 UDP,因为丢弃数据包比等待数据包[重传](https://en.wikipedia.org/wiki/Retransmission_(data_networks))(可能不是[实时操作系统](https://zh.wikipedia.org/wiki/实时计算)可接受的选项)更可取。 diff --git a/files/zh-cn/learn/javascript/asynchronous/promises/index.md b/files/zh-cn/learn/javascript/asynchronous/promises/index.md index 18e5bf5ab181ba..8be9dbb5b96dad 100644 --- a/files/zh-cn/learn/javascript/asynchronous/promises/index.md +++ b/files/zh-cn/learn/javascript/asynchronous/promises/index.md @@ -73,7 +73,7 @@ Promise { : "pending" } ## 链式使用 Promise -在你通过 `fetch()` API 得到一个 `Response` 对象的时候,你需要调用另一个函数来获取响应数据。这次,我们想获得JSON格式的响应数据,所以我们会调用 `Response` 对象的 {{domxref("Response/json", "json()")}} 方法。事实上,`json()` 也是异步的,因此我们必须连续调用两个异步函数。 +在你通过 `fetch()` API 得到一个 `Response` 对象的时候,你需要调用另一个函数来获取响应数据。这次,我们想获得 JSON 格式的响应数据,所以我们会调用 `Response` 对象的 {{domxref("Response/json", "json()")}} 方法。事实上,`json()` 也是异步的,因此我们必须连续调用两个异步函数。 试试这个: @@ -92,7 +92,7 @@ fetchPromise.then( response => { 执行代码后应该会输出“baked beans”(“products.json”中第一个产品的名称)。 -等等! 还记得上一篇文章吗?我们好像说过,在回调中调用另一个回调会出现多层嵌套的情况?我们是不是还说过,这种“回调地狱”使我们的代码难以理解?这不是也一样吗,只不过变成了用 `then()` 调用而已? +等等!还记得上一篇文章吗?我们好像说过,在回调中调用另一个回调会出现多层嵌套的情况?我们是不是还说过,这种“回调地狱”使我们的代码难以理解?这不是也一样吗,只不过变成了用 `then()` 调用而已? 当然如此。但 Promise 的优雅之处在于 *`then()` 本身也会返回一个 Promise,这个 Promise 将指示 `then()` 中调用的异步函数的完成状态*。这意味着我们可以(当然也应该)把上面的代码改写成这样: diff --git a/files/zh-cn/learn/javascript/building_blocks/conditionals/index.html b/files/zh-cn/learn/javascript/building_blocks/conditionals/index.html index 24fd040cfa95ce..91809e082446dd 100644 --- a/files/zh-cn/learn/javascript/building_blocks/conditionals/index.html +++ b/files/zh-cn/learn/javascript/building_blocks/conditionals/index.html @@ -276,7 +276,7 @@

switch 语句

  • 括号内的表达式或值。
  • 关键字 case, 后跟一个选项的表达式/值,后面跟一个冒号.
  • 如果选择与表达式匹配,则运行一些代码。
  • -
  • 一个 break 语句,分号结尾。如果先前的选择与表达式/值匹配,则浏览器在此停止执行代码块,并执行switch语句之后的代码.
  • +
  • 一个 break 语句,分号结尾。如果先前的选择与表达式/值匹配,则浏览器在此停止执行代码块,并执行 switch 语句之后的代码。
  • 你可以添加任意的 case 选项(选项 3-5).
  • 关键字 default, 后面跟随和 case 完全相同的代码模式 (选项 3–5), except that default 之后不需要再有选项, 并且您不需要 break 语句, 因为之后没有任何运行代码. 如果之前没有选项匹配,则运行default选项。
  • diff --git a/files/zh-cn/mdn/guidelines/writing_style_guide/index.html b/files/zh-cn/mdn/guidelines/writing_style_guide/index.html index c8d122647ffdb4..a95f0c21023eae 100644 --- a/files/zh-cn/mdn/guidelines/writing_style_guide/index.html +++ b/files/zh-cn/mdn/guidelines/writing_style_guide/index.html @@ -573,7 +573,7 @@

    其他参考资料

    推荐样式指南

    -

    如果你在撰写过程中或在格式方面遇到了本文尚未提及的问题,我们建议你参考 微软的风格指南,如果还是不能解决问题,还可参考芝加哥论文格式,网络上有一份非官方的PDF版本

    +

    如果你在撰写过程中或在格式方面遇到了本文尚未提及的问题,我们建议你参考 微软的风格指南,如果还是不能解决问题,还可参考芝加哥论文格式,网络上有一份非官方的PDF 版本

    推荐词典

    diff --git a/files/zh-cn/mozilla/add-ons/webextensions/api/alarms/create/index.html b/files/zh-cn/mozilla/add-ons/webextensions/api/alarms/create/index.html index 9cae6086aaa5f8..1157e56c5fea19 100644 --- a/files/zh-cn/mozilla/add-ons/webextensions/api/alarms/create/index.html +++ b/files/zh-cn/mozilla/add-ons/webextensions/api/alarms/create/index.html @@ -36,18 +36,18 @@

    参数介绍

    对象(object)类型. 你可以对过它来指定什么时间 alarm 会开始触发,其值可以是一个具体的时间值或者是一个延时(从 alarm 设置开始)。为了让 alarm 能复现,需要指定 periodInMinutes

    -

    在 Chrome 浏览器上,除非附件以非打包 (unpackaged) 方式加载,alarm 的创建每分钟不允许超过一次。如果附件尝试设置 delayInMinutes 为小于1的值,alarm 只能在到达1分钟之后才会触发,并且会变成每分钟触发一次。

    +

    在 Chrome 浏览器上,除非附件以非打包 (unpackaged) 方式加载,alarm 的创建每分钟不允许超过一次。如果附件尝试设置 delayInMinutes 为小于 1 的值,alarm 只能在到达 1 分钟之后才会触发,并且会变成每分钟触发一次。

    alarmInfo 对象可以设置以下属性:

    when{{optional_inline}}
    -
    double类型。alarm 第一次触发的时间,值为自 1970-01-01 00:00:00 UTC 过去的毫秒数。请使用 Date.now() 来获取 1970-01-01 00:00:00 UTC 到当前时间过去的毫秒数。如果你设置了when属性,请不要设置 delayInMinutes 属性。
    +
    double类型。alarm 第一次触发的时间,值为自 1970-01-01 00:00:00 UTC 过去的毫秒数。请使用 Date.now() 来获取 1970-01-01 00:00:00 UTC 到当前时间过去的毫秒数。如果你设置了 when 属性,请不要设置 delayInMinutes 属性。
    delayInMinutes{{optional_inline}}
    double类型. alarm 设置好到第一次触发之间的分钟数。如果你设置了 delayInMinutes 属性,请不要设置 when 属性。
    periodInMinutes{{optional_inline}}
    -
    double类型. 如果设置此属性,alarm 会从第一次触发开始每隔 periodInMinutes 分钟再次触发。如果你没有设置when及delayInMinutes属性,alarm会在alarm设置好之后periodInMinutes分钟第一次触发。如果periodInMinutes属性没有设置,则alarm只会触发一次。
    +
    double类型. 如果设置此属性,alarm 会从第一次触发开始每隔 periodInMinutes 分钟再次触发。如果你没有设置 when 及 delayInMinutes 属性,alarm 会在 alarm 设置好之后 periodInMinutes 分钟第一次触发。如果 periodInMinutes 属性没有设置,则 alarm 只会触发一次。
    diff --git a/files/zh-cn/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html b/files/zh-cn/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html index 712856ed0023e3..3615802434b040 100644 --- a/files/zh-cn/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html +++ b/files/zh-cn/web/accessibility/an_overview_of_accessible_web_applications_and_widgets/index.html @@ -7,7 +7,7 @@

    问题

    -

    大多数 JavaScript 工具包提供了模拟类似桌面界面行为的客户端小部件库。 滑块,菜单栏,文件列表视图等可以通过 JavaScript,CSS 和 HTML 的组合构建。 由于 HTML 4 规范不提供语义上描述这些窗口小部件的内置标签,因此开发人员通常会使用通用元素(如<div>和<span>)。 虽然这导致了一个看起来像桌面对应的小部件,但标记中通常没有足够的辅助技术可用的语义信息。 网页上的动态内容对于无论何种原因无法查看屏幕的用户来说都是特别有问题的。 股票行情,实时 twitter 消息更新,进度指示器和类似内容以辅助技术(AT)可能不知道的方式修改 DOM。 那就是ARIA存在的意义。

    +

    大多数 JavaScript 工具包提供了模拟类似桌面界面行为的客户端小部件库。滑块,菜单栏,文件列表视图等可以通过 JavaScript,CSS 和 HTML 的组合构建。由于 HTML 4 规范不提供语义上描述这些窗口小部件的内置标签,因此开发人员通常会使用通用元素(如<div>和<span>)。虽然这导致了一个看起来像桌面对应的小部件,但标记中通常没有足够的辅助技术可用的语义信息。网页上的动态内容对于无论何种原因无法查看屏幕的用户来说都是特别有问题的。股票行情,实时 twitter 消息更新,进度指示器和类似内容以辅助技术(AT)可能不知道的方式修改 DOM。那就是ARIA存在的意义。

    Example 1: Markup for a tabs widget built without ARIA labeling. There's no information in the markup to describe the widget's form and function.

    @@ -35,7 +35,7 @@

    问题

    ARIA

    -

    WAI-ARIA, 来自 W3C 的网络无障碍计划(Web Accessibility Initiative) 的可访问的富互联网应用程序(Accessible Rich Internet Applications)规范,提供了一种添加辅助技术(如屏幕阅读器)所需的缺少语义的方法。ARIA 使开发人员可以通过向标记添加特殊属性来更详细地描述其小部件。 旨在填补在动态 web 应用在发现的标准 HTML 标签与桌面式控件之的差距,ARIA 提供了角色和状态以描述大多数常见的 UI 小部件的行为。

    +

    WAI-ARIA, 来自 W3C 的网络无障碍计划(Web Accessibility Initiative) 的可访问的富互联网应用程序(Accessible Rich Internet Applications)规范,提供了一种添加辅助技术(如屏幕阅读器)所需的缺少语义的方法。ARIA 使开发人员可以通过向标记添加特殊属性来更详细地描述其小部件。旨在填补在动态 web 应用在发现的标准 HTML 标签与桌面式控件之的差距,ARIA 提供了角色和状态以描述大多数常见的 UI 小部件的行为。

    The ARIA specification is split up into three different types of attributes: roles, states, and properties. Roles describe widgets that aren't otherwise available in HTML 4, such as sliders, menu bars, tabs, and dialogs. Properties describe characteristics of these widgets, such as if they are draggable, have a required element, or have a popup associated with them. States describe the current interaction state of an element, informing the assistive technology if it is busy, disabled, selected, or hidden.

    diff --git a/files/zh-cn/web/accessibility/aria/aria_live_regions/index.html b/files/zh-cn/web/accessibility/aria/aria_live_regions/index.html index 0a797c95c4d206..6ee11ab1183c4f 100644 --- a/files/zh-cn/web/accessibility/aria/aria_live_regions/index.html +++ b/files/zh-cn/web/accessibility/aria/aria_live_regions/index.html @@ -6,7 +6,7 @@

    使用 JavaScript,我们可以动态更改页面的某些部分,而无需重新加载整个页面——例如,可以动态更新搜索结果列表,或者显示不需要用户交互的警告或通知。虽然这些更改对于能够看到页面的用户来说通常是显而易见的,但是对于残疾用户来说,它们可能并不明显。ARIA Live 区域填补了这个空白,并提供了一种以编程方式显现动态内容更改的方法,这种方式可以由残疾辅助技术提供提示。

    -

    提示: 辅助技术将播报实时区域内容的动态变化。 必须首先显示活动区域(通常是空的),以便浏览器和辅助技术可以知道它。 然后宣布任何后续更改。

    +

    提示: 辅助技术将播报实时区域内容的动态变化。必须首先显示活动区域(通常是空的),以便浏览器和辅助技术可以知道它。然后宣布任何后续更改。

    在页面加载时的初始标记中简单地添加一个 aria-live 属性或者一个特殊的活动区域角色 ( role ) (例如 role="alert") 将不会起作用。

    @@ -19,24 +19,24 @@

    简单的活动区域

    -

    在不重新加载页面的情况下更新的动态内容通常是区域或窗口小部件。 非交互式的简单内容更改应标记为实时区域。 以下是每个相关的 ARIA 活动区域属性的列表,并带有说明。

    +

    在不重新加载页面的情况下更新的动态内容通常是区域或窗口小部件。非交互式的简单内容更改应标记为实时区域。以下是每个相关的 ARIA 活动区域属性的列表,并带有说明。

    1. aria-live: aria-live=POLITENESS_SETTING 被用来设置屏幕阅读器对待活动区域更新的优先级 - 可能的设置:off, polite or assertive 。默认设置是 off 。这个设置是到目前为止最重要的。
    2. aria-controls: aria-controls=[IDLIST] 被用来将控制动作与它控制的区域相关联。区域就像div 里面的 id 被鉴别;多区域可以被一个带空格的控制动作关联,例如: aria-controls="myRegionID1 myRegionsID2"  。

      -
      警告:尚不知道在当前的辅助技术工具中是否实现了实时区域的 ARIA 控制方面。 需要研究。
      +
      警告:尚不知道在当前的辅助技术工具中是否实现了实时区域的 ARIA 控制方面。需要研究。
    -

    正常来说,只有 aria-live="polite" 被使用。任何对用户来说很重要但又不至于令人讨厌的更新的区域都应该被设置此属性。 每当用户空闲时,屏幕阅读器都会说出更改。

    +

    正常来说,只有 aria-live="polite" 被使用。任何对用户来说很重要但又不至于令人讨厌的更新的区域都应该被设置此属性。每当用户空闲时,屏幕阅读器都会说出更改。

    对于不重要的区域或由于快速更新或其他原因而烦人的区域,请使用 aria-live="off" 将其静音。

    让下拉框更新有用的屏幕信息

    -

    一个专门提供有关行星信息的网站提供了一个下拉框。 从下拉列表中选择一个行星时,页面上的区域会更新有关所选行星的信息。

    +

    一个专门提供有关行星信息的网站提供了一个下拉框。从下拉列表中选择一个行星时,页面上的区域会更新有关所选行星的信息。

    HTML

    @@ -110,7 +110,7 @@

    JavaScript

    {{EmbedLiveSample('Dropdown_box_updates_useful_onscreen_information', '', 350)}}

    -

    当用户选择一个新的行星时,活动区域的信息会被播报。因为这个活动区域有 aria-live="polite" 属性,屏幕阅读器将会等待用户暂停后再播报更新。这样的话,在列表中向下滑动并选择其他星球将不会在实时区域中播报更新。 仅会针对最终选择的星球播报实时区域的更新。

    +

    当用户选择一个新的行星时,活动区域的信息会被播报。因为这个活动区域有 aria-live="polite" 属性,屏幕阅读器将会等待用户暂停后再播报更新。这样的话,在列表中向下滑动并选择其他星球将不会在实时区域中播报更新。仅会针对最终选择的星球播报实时区域的更新。

    这是 Mac 上 VoiceOver 的屏幕截图,播报对实时区域的更新(通过字幕):A screenshot of VoiceOver on Mac announcing the update to a live region. Subtitles are shown in the picture.

    @@ -144,7 +144,7 @@

    更好的专业活动区域角色

    进度条 - 小部件和活动区域之间的混合体。 将此参数与 aria-valueminaria-valuenowaria-valuemax 结合使用。(待定:请在此处添加更多信息)。 + 小部件和活动区域之间的混合体。将此参数与 aria-valueminaria-valuenowaria-valuemax 结合使用。(待定:请在此处添加更多信息)。 @@ -164,20 +164,20 @@

    高级活动区域

    待定:有关操作系统 / 浏览器 / 辅助技术工具组合对单个属性的支持的更详细的信息)

    -

    JAWS 10.0 版中已添加对实时区域的常规支持。 Windows Eyes 从 8.0 版开始支持“在 Microsoft Internet Explorer 和 Mozilla Firefox 的浏览模式之外使用”的实时区域。 NVDA 早在 2008 年就为 Mozilla Firefox 添加了对实时区域的一些基本支持,并在 2010 年和 2014 年进行了改进。2015 年,还为 Internet Explorer(MSHTML)添加了基本支持。

    +

    JAWS 10.0 版中已添加对实时区域的常规支持。Windows Eyes 从 8.0 版开始支持“在 Microsoft Internet Explorer 和 Mozilla Firefox 的浏览模式之外使用”的实时区域。NVDA 早在 2008 年就为 Mozilla Firefox 添加了对实时区域的一些基本支持,并在 2010 年和 2014 年进行了改进。2015 年,还为 Internet Explorer(MSHTML)添加了基本支持。

    Paciello Group 有一些与活动区域支持状态有关的信息 (2014) ,Paul J. Adam 特别研究了 对于 Aria-Atomic 与 Aria-Relevant 的支持。 

    1. aria-atomic aria-atomic=BOOLEAN 被用来设置屏幕阅读器是否应该总是将活动区域整个播报,即使区域中只有一部分内容改变。可能的值为 false 或者 true 。默认值为 false 。
    2. -
    3. aria-relevant : aria-relevant=[LIST_OF_CHANGES] 被用来设置哪些类型的改变与活动区域有关。可能的值由以下的一个或者更多组成:additions, removalstext, all 。 默认值是 additions text 。
    4. +
    5. aria-relevant : aria-relevant=[LIST_OF_CHANGES] 被用来设置哪些类型的改变与活动区域有关。可能的值由以下的一个或者更多组成:additions, removalstext, all 。默认值是 additions text 。
    6. aria-labelledby : aria-labelledby=[IDLIST] 被用来将一个区域与其标签关联起来,与 aria-control 类似,但将标签与区域关联。标签标识符间用空格隔开。
    7. aria-describedby : aria-describedby=[IDLIST] 被用来将一个区域与其描述关联起来,与 aria-control 类似,但将标签与描述关联。描述标识符间用空格隔开。

    高级用例: 时钟

    -

    为了举例说明 aria-atomic ,请考虑一个带有简单时钟的站点,其中显示了小时和分钟。 时钟每分钟更新一次,而新的剩余时间仅会覆盖当前内容。

    +

    为了举例说明 aria-atomic ,请考虑一个带有简单时钟的站点,其中显示了小时和分钟。时钟每分钟更新一次,而新的剩余时间仅会覆盖当前内容。

    <div id="clock" role="timer" aria-live="polite"></div>
     
    @@ -190,9 +190,9 @@

    高级用例: 时钟

    }, 60000); -

    该函数第一次执行时,将播报所添加字符串的全部。 在随后的调用中,将仅播报内容与先前内容相比已更改的部分。 例如,当时钟从“ 17:33”更改为“ 17:34”时,辅助技术工具将仅播报“ 4”,这对用户不是很有用。

    +

    该函数第一次执行时,将播报所添加字符串的全部。在随后的调用中,将仅播报内容与先前内容相比已更改的部分。例如,当时钟从“17:33”更改为“17:34”时,辅助技术工具将仅播报“4”,这对用户不是很有用。

    -

    解决此问题的一种方法是,首先清除活动区域的内容,然后注入新内容。 但是,有时这可能不可靠,因为这取决于这两个更新的确切时间。

    +

    解决此问题的一种方法是,首先清除活动区域的内容,然后注入新内容。但是,有时这可能不可靠,因为这取决于这两个更新的确切时间。

    aria-atomic="true" 确保每次更新实时区域时,全部内容都会被完整播报 (例如 "时间: 17:34").

    diff --git a/files/zh-cn/web/accessibility/aria/forms/alerts/index.html b/files/zh-cn/web/accessibility/aria/forms/alerts/index.html index 78f770d80f0919..019ca973527a48 100644 --- a/files/zh-cn/web/accessibility/aria/forms/alerts/index.html +++ b/files/zh-cn/web/accessibility/aria/forms/alerts/index.html @@ -5,7 +5,7 @@ ---

    问题

    -

    您有一个表单(例如联系表单),您希望将一些可访问的错误检查放入其中。 常见问题的示例包括无效的电子邮件地址,或至少不包含名字或姓氏的名称字段。

    +

    您有一个表单(例如联系表单),您希望将一些可访问的错误检查放入其中。常见问题的示例包括无效的电子邮件地址,或至少不包含名字或姓氏的名称字段。

    表单

    @@ -40,9 +40,9 @@

    检查有效性并通知用户

    表单有效性检验由这几个步骤组成:

      -
    1. 检查电子邮件地址或输入的名称是否有效。 每个字段都有一组必须通过验证的标准。 为了简化此示例,我们将检查电子邮件地址是否包含“ @”符号,以及名称条目是否包含至少 1 个字符。
    2. +
    3. 检查电子邮件地址或输入的名称是否有效。每个字段都有一组必须通过验证的标准。为了简化此示例,我们将检查电子邮件地址是否包含“ @”符号,以及名称条目是否包含至少 1 个字符。
    4. 如果不满足上述条件,则该字段的aria-invalid属性将被赋予“ true”值。
    5. -
    6. 如果不符合条件,用户将被通过警报来通知。 我们将使用简单的 WAI-ARIA 小部件来进行通知,而不是使用 JavaScript 的“alert”功能。 这会通知用户错误,但允许他们继续修改表单而不会失去焦点(由 JavaScript 默认的“alert”功能中的“ onblur”处理函数引起)。
    7. +
    8. 如果不符合条件,用户将被通过警报来通知。我们将使用简单的 WAI-ARIA 小部件来进行通知,而不是使用 JavaScript 的“alert”功能。这会通知用户错误,但允许他们继续修改表单而不会失去焦点(由 JavaScript 默认的“alert”功能中的“ onblur”处理函数引起)。

    下面是一个能够被插入在结束“ head”标签上方的示例 JavaScript 代码 

    @@ -84,9 +84,9 @@

    检查有效性并通知用户

    checkValidity 函数

    -

    JavaScript 中用于表单验证的主要方法是checkValidity函数。 此方法采用三个参数:要验证的输入的 ID,要确保有效性的搜索项,以及要插入警报中的错误消息。

    +

    JavaScript 中用于表单验证的主要方法是checkValidity函数。此方法采用三个参数:要验证的输入的 ID,要确保有效性的搜索项,以及要插入警报中的错误消息。

    -

    要查看其是否有效,该函数将检查输入indexOf值是否大于-1。 如果在值内找不到搜索词的索引,则返回-1或更小的值。

    +

    要查看其是否有效,该函数将检查输入indexOf值是否大于-1。如果在值内找不到搜索词的索引,则返回-1或更小的值。

    如果无效,这个函数会执行这两个事情:

    @@ -99,17 +99,17 @@

    checkValidity 函数

    addAlert 函数

    -

    此功能首先删除所有旧警报。 该函数很简单:它查找 ID 为“alert”的元素,如果找到,则将其从文档对象模型中删除。

    +

    此功能首先删除所有旧警报。该函数很简单:它查找 ID 为“alert”的元素,如果找到,则将其从文档对象模型中删除。

    -

    接下来,这个函数创建一个div元素来保存警告文本。 它得到了一个 “alert”的 ID.,并且它具有“alert”角色集。 这实际上是受 ARIA 启发的,即使它在属性名称中没有标明“aria”。 这是因为该角色基于XHTML 角色属性模块,为简单起见,该模块简单地移植到 HTML。

    +

    接下来,这个函数创建一个div元素来保存警告文本。 它得到了一个 “alert”的 ID.,并且它具有“alert”角色集。这实际上是受 ARIA 启发的,即使它在属性名称中没有标明“aria”。这是因为该角色基于XHTML 角色属性模块,为简单起见,该模块简单地移植到 HTML。

    这些文字被加入这个div元素,然后这个div元素被加入文档。

    -

    发生这种情况时,当此div出现时,Firefox 将向辅助技术触发“警报”事件。 大多数屏幕阅读器都会自动选择并说出来。 这类似于 Firefox 中的提示栏,提示您是否要保存密码。 我们刚刚创建的警报没有任何可按的按钮,只是告诉我们出了什么问题。

    +

    发生这种情况时,当此div出现时,Firefox 将向辅助技术触发“警报”事件。大多数屏幕阅读器都会自动选择并说出来。这类似于 Firefox 中的提示栏,提示您是否要保存密码。我们刚刚创建的警报没有任何可按的按钮,只是告诉我们出了什么问题。

    -

    修改“onblur” 事件

    +

    修改“onblur”事件

    -

    现在剩下的就是添加事件处理程序。 我们需要为此更改电子邮件和名称的两个输入:

    +

    现在剩下的就是添加事件处理程序。我们需要为此更改电子邮件和名称的两个输入:

     <input name="name" id="name" aria-required="true"
             onblur="checkValidity('name', ' ', 'Invalid name entered!');"/>
    @@ -123,11 +123,11 @@ 

    修改“onblur” 事件

    如果你在使用 Firefox 3 和一个当前支持的屏幕阅读器,试试看下面的操作:

      -
    1. 在姓名输入框中,只输入你的名。按下 Tab 键时,您会听到警告,提示您输入了无效的姓名。 然后,您可以向后移 Tab 键并更正错误。
    2. -
    3. 输入不带“ @”符号的电子邮件地址。 跳出此字段时,您应该听到一条警告,提示您未输入有效的电子邮件地址。
    4. +
    5. 在姓名输入框中,只输入你的名。按下 Tab 键时,您会听到警告,提示您输入了无效的姓名。然后,您可以向后移 Tab 键并更正错误。
    6. +
    7. 输入不带“ @”符号的电子邮件地址。跳出此字段时,您应该听到一条警告,提示您未输入有效的电子邮件地址。
    -

    在两种情况下,当将焦点返回到相关字段时,您的屏幕阅读器应该告诉您该字段无效。 JAWS 9 支持这个功能,但是 JAWS 8 不支持,所以这个功能不一定能够在所有版本的支持的屏幕阅读器中正常工作。

    +

    在两种情况下,当将焦点返回到相关字段时,您的屏幕阅读器应该告诉您该字段无效。JAWS 9 支持这个功能,但是 JAWS 8 不支持,所以这个功能不一定能够在所有版本的支持的屏幕阅读器中正常工作。

    您可能遇到的一些问题

    @@ -137,7 +137,7 @@

    您可能遇到的一些问题

    A. 如果这是一个实例中的表格,并且尚不支持 ARIA 的浏览器正在访问该网站,我们仍然希望表明这是必填字段。
    Q. 为什么不将焦点自动设置回无效字段?
    -
    A. 因为 Windows API 规范(可能还有其他规范)不允许这样做。 同样,让焦点在没有实际用户交互的情况下过于频繁地跳动通常也不是一件好事。
    +
    A. 因为 Windows API 规范(可能还有其他规范)不允许这样做。同样,让焦点在没有实际用户交互的情况下过于频繁地跳动通常也不是一件好事。
    TBD:让我们重新考虑一下 - 就个人而言,我认为如果不引起键盘陷阱,设置焦点可能会很好。
    diff --git a/files/zh-cn/web/accessibility/aria/index.html b/files/zh-cn/web/accessibility/aria/index.html index b59dc1e7ca900d..a27f001cafed47 100644 --- a/files/zh-cn/web/accessibility/aria/index.html +++ b/files/zh-cn/web/accessibility/aria/index.html @@ -62,7 +62,7 @@

    教程

    ARIA 简介
    快速介绍如何使用 ARIA 访问动态内容。另请参阅 2008 年的经典 ARIA intro by Gez Lemon
    Videos of screen readers using ARIA
    -
    查看来自网络的真实和简化示例,视频包括 ARIA “之前”和 ARIA“之后”。
    +
    查看来自网络的真实和简化示例,视频包括 ARIA“之前”和 ARIA“之后”。
    Using ARIA
    开发人员实用指南。它建议在 HTML 元素上使用哪些 ARIA 属性。建议是基于实施的实际情况。
    diff --git a/files/zh-cn/web/accessibility/aria/roles/button_role/index.html b/files/zh-cn/web/accessibility/aria/roles/button_role/index.html index 2c047c7424d3de..ae3378f0c2ebe1 100644 --- a/files/zh-cn/web/accessibility/aria/roles/button_role/index.html +++ b/files/zh-cn/web/accessibility/aria/roles/button_role/index.html @@ -8,7 +8,7 @@ translation_of: Web/Accessibility/ARIA/Roles/button_role original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role --- -

    button 角色应该用于可单击的元素, 当用户激活时触发响应。 在其本身,role="button" 可以使任何元素 (e.g. {{HTMLElement("p")}}, {{HTMLElement("span")}} or {{HTMLElement("div")}}) 作为一个屏幕阅读器的按钮控件出现。此外,该角色还可以与 aria-pressed 属性组合使用,以创建切换按钮。

    +

    button 角色应该用于可单击的元素, 当用户激活时触发响应。在其本身,role="button" 可以使任何元素 (e.g. {{HTMLElement("p")}}, {{HTMLElement("span")}} or {{HTMLElement("div")}}) 作为一个屏幕阅读器的按钮控件出现。此外,该角色还可以与 aria-pressed 属性组合使用,以创建切换按钮。

    注意: 在可能的情况下,建议使用原生 HTML 按钮 (<button>, <input type="button" /><input type="submit" />, <input type="reset" /> and <input type="image" />) 而不是按钮角色,因为原生 HTML 按钮得到了较老用户代理和辅助技术的广泛支持。原生 HTML 按钮也支持键盘和焦点需求,不需要额外的定制。
    @@ -16,9 +16,9 @@

    键盘 and 聚焦

    按钮是交互式控件,因此其本身是可聚焦的。如果button 角色被添加到一个自身不可聚焦的元素 (such as <span><div> or <p>) 那么必须使用tabindex 属性来使按钮可聚焦。

    -

    按钮可以由鼠标用户和键盘用户操作。 对于原生 HTML <button> 元素 ,按钮的 onclick 事件会在鼠标单击和按下键盘的 Space or Enter 时被触发, 同时这个按钮处于聚焦状态。 但是如果使用其他标签来创建“自定义按钮”,那么onclick事件只会在点击鼠标光标时触发,即使使用role="button" 。因此,开发人员必须向元素添加一个单独的关键事件处理程序,以便在按下 Space or Enter 时触发按钮。

    +

    按钮可以由鼠标用户和键盘用户操作。对于原生 HTML <button> 元素,按钮的 onclick 事件会在鼠标单击和按下键盘的 Space or Enter 时被触发,同时这个按钮处于聚焦状态。 但是如果使用其他标签来创建“自定义按钮”,那么onclick事件只会在点击鼠标光标时触发,即使使用role="button" 。因此,开发人员必须向元素添加一个单独的关键事件处理程序,以便在按下 Space or Enter 时触发按钮。

    -

    Warning: 把给一个链接标记为按钮角色的链接时要谨慎。按钮将使用 Space or Enter 键触发,而链接被期望使用 Enter 键触发。 换句话说,当链接被用来作为按钮的时候,仅仅添加role="button"是不够的。还需要添加一个 key 事件处理程序来侦听 Space 键,以便与原生按钮保持一致。

    +

    Warning: 把给一个链接标记为按钮角色的链接时要谨慎。按钮将使用 Space or Enter 键触发,而链接被期望使用 Enter 键触发。换句话说,当链接被用来作为按钮的时候,仅仅添加role="button"是不够的。还需要添加一个 key 事件处理程序来侦听 Space 键,以便与原生按钮保持一致。

    可切换的按钮

    diff --git a/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.html b/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.html index be8b207d975ee0..bb0504d586efc7 100644 --- a/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.html +++ b/files/zh-cn/web/accessibility/aria/roles/listbox_role/index.html @@ -17,7 +17,7 @@

    描述

    具有 listbox 角色的元素含有隐式的 aria-orientationvertical 值。

    -

    当一个列表被 tab 聚焦到时,如果没有其他内容,将会选择列表中的第一项。可以用 Up/Down 方向键在列表中导航,按 Shift + Up/Down 方向键将移动并扩展选择。键入一个或多个字母将在列表项中导航(相同的字母指向以那个开头的每个选项,不同的字母指向以整个字符串开头的第一个选项)。如果当前选项有关联的菜单, Shift+F10 将启动该菜单。如果项目可被勾选,Space 可用于切换 checkbox role。对于可选择的列表项,Space 切换它们的选择,Shift+Space 可用于选择连续的项目,Ctrl+ 方向键 移动而不选择, Ctrl+Space 可用于选择非连续的项目。建议使用 checkbox、link 或其他方法来选择所有项目,为此可以使用 Ctrl+A 作为快捷键。

    +

    当一个列表被 tab 聚焦到时,如果没有其他内容,将会选择列表中的第一项。可以用 Up/Down 方向键在列表中导航,按 Shift + Up/Down 方向键将移动并扩展选择。键入一个或多个字母将在列表项中导航(相同的字母指向以那个开头的每个选项,不同的字母指向以整个字符串开头的第一个选项)。如果当前选项有关联的菜单,Shift+F10 将启动该菜单。如果项目可被勾选,Space 可用于切换 checkbox role。对于可选择的列表项,Space 切换它们的选择,Shift+Space 可用于选择连续的项目,Ctrl+ 方向键 移动而不选择,Ctrl+Space 可用于选择非连续的项目。建议使用 checkbox、link 或其他方法来选择所有项目,为此可以使用 Ctrl+A 作为快捷键。

    当 listbox 角色被添加到元素中,或含有它的元素变得可见时,屏幕阅读器会在 listbox 获得焦点时读出它的 label 和 role。如果列表中的 option 或选项获得焦点,则接下来会读出它,如果屏幕阅读器支持,则会在列表中指示选项的位置。当焦点在列表中移动时,屏幕阅读器会读出相关选项。

    @@ -27,7 +27,7 @@

    相关角色

    option
    -
    需要一个或多个嵌套的 option。 所有被选择的选项都含有 aria-selected 且值为 true。所有未选中的选项都含有 aria-selected 且值为 false。 如果某个选项不可选择,aria-selected 会被忽略。
    +
    需要一个或多个嵌套的 option。所有被选择的选项都含有 aria-selected 且值为 true。所有未选中的选项都含有 aria-selected 且值为 false。如果某个选项不可选择,aria-selected 会被忽略。
    list
    包含 listitem 元素的部分
    @@ -51,7 +51,7 @@

    状态和属性

    aria-labelledby
    标识以空格分隔的元素 ID 列表中的一个或多个可见元素,这些元素标识 listbox。如果没有可见标签,则应该使用 aria-label 来包含标签。(注意:带有两个 L 的 "labelled" 是基于辅助功能 API 约定的正确拼写。)
    aria-roledescription
    -
    一个可供人类阅读的字符串,可以更清楚地标识 listbox 的作用。屏幕阅读器通常会在阅读标签(如果存在)后向用户阅读此值,而不是说 “listbox”。
    +
    一个可供人类阅读的字符串,可以更清楚地标识 listbox 的作用。屏幕阅读器通常会在阅读标签(如果存在)后向用户阅读此值,而不是说“listbox”。

    (有关更多详细信息以及 ARIA 状态和属性的完整列表,请参阅 ARIA listbox (role) 文档。 )

    diff --git a/files/zh-cn/web/accessibility/keyboard-navigable_javascript_widgets/index.html b/files/zh-cn/web/accessibility/keyboard-navigable_javascript_widgets/index.html index 67405e52e1ff31..bad083e5021be3 100644 --- a/files/zh-cn/web/accessibility/keyboard-navigable_javascript_widgets/index.html +++ b/files/zh-cn/web/accessibility/keyboard-navigable_javascript_widgets/index.html @@ -80,7 +80,7 @@

    组合控件 Grouping controls

    针对像菜单、标签面板、树等这些组合控件,父元素应该在 tab 序列里面 (tabindex="0") 而每个后代选择/标签/单元/行应该从 tab 序列里面移除 (tabindex="-1")。用户应该可通过方向键来操控这些后代元素。(关于组件一般预期的键盘支持,可以查看 DHTML Style Guide.)

    -

    下面这个组合菜单的例子展示了这种技术的使用。 一旦键盘 focus 中容器 ul 元素,Javascript  开发人员需要在键盘事件里针对方向键的响应里管理里面元素的 focus 顺序。在组件里管理 focus 的办法,看下面这个 "在组合控件里管理 focus " 例子。

    +

    下面这个组合菜单的例子展示了这种技术的使用。一旦键盘 focus 中容器 ul 元素,Javascript  开发人员需要在键盘事件里针对方向键的响应里管理里面元素的 focus 顺序。在组件里管理 focus 的办法,看下面这个 "在组合控件里管理 focus " 例子。

    范例 2: 一个使用 tabindex 控制键盘 access 的菜单控件

    @@ -120,7 +120,7 @@

    在组合控件里面管理 focus

  • 流动 tabindex: 通过编程移动 focus
  • -
  • aria-activedescendent: 管理一个“虚拟” focus
  • +
  • aria-activedescendent: 管理一个“虚拟”focus
  • 方法 1: 流动 tabindex

    diff --git a/files/zh-cn/web/api/abortsignal/index.html b/files/zh-cn/web/api/abortsignal/index.html index 02c4f247f7fd87..3bbcab6f98f16a 100644 --- a/files/zh-cn/web/api/abortsignal/index.html +++ b/files/zh-cn/web/api/abortsignal/index.html @@ -40,7 +40,7 @@

    示例

    我们首先使用{{domxref("AbortController.AbortController", "AbortController()")}}构造函数创建一个控制器,然后使用{{domxref ("AbortController.signal")}}属性。

    -

    当获取请求被启动时,我们在请求的选项对象中传递 AbortSignal 作为一个选项(见下面的{signal})。 这将信号和控制器与获取请求相关联,并允许我们通过调用{{domxref("AbortController.abort()")}}来中止它,如下面的第二个事件监听器所示。

    +

    当获取请求被启动时,我们在请求的选项对象中传递 AbortSignal 作为一个选项(见下面的{signal})。这将信号和控制器与获取请求相关联,并允许我们通过调用{{domxref("AbortController.abort()")}}来中止它,如下面的第二个事件监听器所示。

    var controller = new AbortController();
     var signal = controller.signal;
    diff --git a/files/zh-cn/web/api/analysernode/analysernode/index.html b/files/zh-cn/web/api/analysernode/analysernode/index.html
    index ffbca18fc3cacf..a156ec15c497c1 100644
    --- a/files/zh-cn/web/api/analysernode/analysernode/index.html
    +++ b/files/zh-cn/web/api/analysernode/analysernode/index.html
    @@ -22,8 +22,8 @@ 

    参数

    Options are as follows:
    • fftSize: 用于频域分析的 FFT 初始尺寸。默认值是 2048。
    • -
    • maxDecibels: 用于 FFT 分析的初始最大功率(dB)。默认值是-30。
    • -
    • minDecibels: 用于 FFT 分析的初始最小功率(dB)。默认值是-100。
    • +
    • maxDecibels: 用于 FFT 分析的初始最大功率(dB)。默认值是 -30。
    • +
    • minDecibels: 用于 FFT 分析的初始最小功率(dB)。默认值是 -100。
    • smoothingTimeConstant: 用于 FFT 分析的初始平滑常数。默认值是 0.8。
    diff --git a/files/zh-cn/web/api/analysernode/getbytetimedomaindata/index.html b/files/zh-cn/web/api/analysernode/getbytetimedomaindata/index.html index 5637ee33949e98..c42a4cfa25a242 100644 --- a/files/zh-cn/web/api/analysernode/getbytetimedomaindata/index.html +++ b/files/zh-cn/web/api/analysernode/getbytetimedomaindata/index.html @@ -31,7 +31,7 @@

    返回值

    例子

    -

    以下的例子展示了 {{domxref("AudioContext")}} 生成一个 AnalyserNode 基础用法, 然后通过 {{domxref("window.requestAnimationFrame()","requestAnimationFrame")}} 和 {{htmlelement("canvas")}} 重复的收集和绘制一个当前音频输入的“示波器样式”输出。 有关更完整的应用实例/信息,请查看我们的 Voice-change-O-matic demo (有关代码请参阅 app.js lines 128–205)。

    +

    以下的例子展示了 {{domxref("AudioContext")}} 生成一个 AnalyserNode 基础用法, 然后通过 {{domxref("window.requestAnimationFrame()","requestAnimationFrame")}} 和 {{htmlelement("canvas")}} 重复的收集和绘制一个当前音频输入的“示波器样式”输出。有关更完整的应用实例/信息,请查看我们的 Voice-change-O-matic demo (有关代码请参阅 app.js lines 128–205)。

    var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
     var analyser = audioCtx.createAnalyser();
    diff --git a/files/zh-cn/web/api/animation/animation/index.html b/files/zh-cn/web/api/animation/animation/index.html
    index 2a00c0ccfd7686..028f8c0b47ea08 100644
    --- a/files/zh-cn/web/api/animation/animation/index.html
    +++ b/files/zh-cn/web/api/animation/animation/index.html
    @@ -19,7 +19,7 @@ 

    参数

    effect {{optional_inline}}
    将{{domxref("KeyframeEffect")}}对象分配给动画。(在将来,其他类型的效果,如 SequenceEffects 或 GroupEffects 是可能被实现的,但现在,唯一的效果是 KeyframeEffect。)
    timeline {{optional_inline}}
    -
    指定与动画关联的时间轴。(目前唯一可用的时间轴类型是{{domxref("DocumentTimeline")}},但在将来我会有与手势或滚动相关联的时间轴。)默认为{{domxref("Document.timeline")}}。 这也可以设置为 null。
    +
    指定与动画关联的时间轴。(目前唯一可用的时间轴类型是{{domxref("DocumentTimeline")}},但在将来我会有与手势或滚动相关联的时间轴。)默认为{{domxref("Document.timeline")}}。这也可以设置为 null。

    例子

    diff --git a/files/zh-cn/web/api/animation/currenttime/index.html b/files/zh-cn/web/api/animation/currenttime/index.html index 3d39d855992f89..434585a93433cd 100644 --- a/files/zh-cn/web/api/animation/currenttime/index.html +++ b/files/zh-cn/web/api/animation/currenttime/index.html @@ -22,7 +22,7 @@

    例子

    -

    Drink Me/Eat Me game中,爱丽丝的高度是可变动的,所以它可以从小到大或从大到小。 在游戏开始时,通过将她的动画的 currentTime 设置为她的 keyframeEffect 的持续时间的一半让她的高度设置在两个极端之间:

    +

    Drink Me/Eat Me game中,爱丽丝的高度是可变动的,所以它可以从小到大或从大到小。在游戏开始时,通过将她的动画的 currentTime 设置为她的 keyframeEffect 的持续时间的一半让她的高度设置在两个极端之间:

    aliceChange.currentTime = aliceChange.effect.timing.duration / 2;
    diff --git a/files/zh-cn/web/api/animation/effect/index.html b/files/zh-cn/web/api/animation/effect/index.html index 3724e7d212cba4..3e4eb2445b50c3 100644 --- a/files/zh-cn/web/api/animation/effect/index.html +++ b/files/zh-cn/web/api/animation/effect/index.html @@ -5,7 +5,7 @@ ---

    {{ SeeCompatTable() }} {{ APIRef("Web Animations API") }}

    -

    Animation.effect 属性可以获取或设置动画的目标效果。 目标效果可以是{{domxref("KeyframeEffect")}}对象或 null。

    +

    Animation.effect 属性可以获取或设置动画的目标效果。目标效果可以是{{domxref("KeyframeEffect")}}对象或 null。

    语法

    diff --git a/files/zh-cn/web/api/animation/index.html b/files/zh-cn/web/api/animation/index.html index 88ad834e4784eb..4a5593dfc02337 100644 --- a/files/zh-cn/web/api/animation/index.html +++ b/files/zh-cn/web/api/animation/index.html @@ -20,7 +20,7 @@

    属性

    {{domxref("Animation.currentTime")}}
    -
    动画的当前时间值(以毫秒为单位),无论是正在运行还是已暂停。 如果动画缺少{{domxref("AnimationTimeline", "timeline")}}或尚未播放,其值为 null。
    +
    动画的当前时间值(以毫秒为单位),无论是正在运行还是已暂停。如果动画缺少{{domxref("AnimationTimeline", "timeline")}}或尚未播放,其值为 null。
    @@ -87,7 +87,7 @@

    方法

    {{domxref("Animation.reverse()")}}
    -
    反转播放动画,直到播放到动画开始时停止。 如果动画完成或未播放,它将从头到尾播放。
    +
    反转播放动画,直到播放到动画开始时停止。如果动画完成或未播放,它将从头到尾播放。

    规范

    diff --git a/files/zh-cn/web/api/audiobuffer/audiobuffer/index.html b/files/zh-cn/web/api/audiobuffer/audiobuffer/index.html index b8c11cea10c554..39d4ebfd10e762 100644 --- a/files/zh-cn/web/api/audiobuffer/audiobuffer/index.html +++ b/files/zh-cn/web/api/audiobuffer/audiobuffer/index.html @@ -18,7 +18,7 @@

    参数

    context {{obsolete_inline("")}}
    -
    一个 {{domxref("AudioContext")}} 对象. (这个参数已经被标准移除, 详细信息请参阅浏览器兼容性部分.)
    +
    一个 {{domxref("AudioContext")}} 对象。(这个参数已经被标准移除, 详细信息请参阅浏览器兼容性部分.)
    options {{optional_inline}}
    Options are as follows:
      diff --git a/files/zh-cn/web/api/audiobuffer/index.html b/files/zh-cn/web/api/audiobuffer/index.html index 4034b5e6df73a1..9e9119007af66a 100644 --- a/files/zh-cn/web/api/audiobuffer/index.html +++ b/files/zh-cn/web/api/audiobuffer/index.html @@ -9,7 +9,7 @@

      AudioBuffer 接口表示存在内存里的一段短小的音频资源,利用{{ domxref("AudioContext.decodeAudioData()") }}方法从一个音频文件构建,或者利用 {{ domxref("AudioContext.createBuffer()") }}从原始数据构建。把音频放入 AudioBuffer 后,可以传入到一个 {{ domxref("AudioBufferSourceNode") }}进行播放。

    -

    这些类型对象被设计来控制小音频片段,往往短于 45 秒。对于更长的声音,通过 {{domxref("MediaElementAudioSourceNode")}}来实现更为合适。缓存区(buffer)包含以下数据:不间断的 IEEE754 32 位线性 PCM,从-1 到 1 的范围额定,就是说,32 位的浮点缓存区的每个样本在-1.0 到 1.0 之间。如果{{domxref("AudioBuffer")}}有不同的频道,他们通常被保存在独立的缓存区。

    +

    这些类型对象被设计来控制小音频片段,往往短于 45 秒。对于更长的声音,通过 {{domxref("MediaElementAudioSourceNode")}}来实现更为合适。缓存区(buffer)包含以下数据:不间断的 IEEE754 32 位线性 PCM,从 -1 到 1 的范围额定,就是说,32 位的浮点缓存区的每个样本在 -1.0 到 1.0 之间。如果{{domxref("AudioBuffer")}}有不同的频道,他们通常被保存在独立的缓存区。

    属性

    diff --git a/files/zh-cn/web/api/audiobuffersourcenode/index.html b/files/zh-cn/web/api/audiobuffersourcenode/index.html index f529bb0328c7e7..036044fee17d53 100644 --- a/files/zh-cn/web/api/audiobuffersourcenode/index.html +++ b/files/zh-cn/web/api/audiobuffersourcenode/index.html @@ -74,7 +74,7 @@

    方法

    例子

    -

    在这个例子中,我们将会创建一个 2 秒的缓冲器,并用白噪音填充它,然后通过{{domxref("AudioBufferSourceNode")}}来播放它.  注释里说明了它的功能。

    +

    在这个例子中,我们将会创建一个 2 秒的缓冲器,并用白噪音填充它,然后通过{{domxref("AudioBufferSourceNode")}}来播放它。 注释里说明了它的功能。

    注意: 你可以 查看在线演示 或 查看源代码.

    diff --git a/files/zh-cn/web/api/audionode/connect/index.html b/files/zh-cn/web/api/audionode/connect/index.html index 95d6e373f230e4..8e1c70e693cd8d 100644 --- a/files/zh-cn/web/api/audionode/connect/index.html +++ b/files/zh-cn/web/api/audionode/connect/index.html @@ -24,7 +24,7 @@

    属性

    outputIndex {{optional_inline}}
    一个索引,用于描述当前  AudioNode 的哪个输出会连接到 destination。索引数字是由输出频道(详见 Audio channels)的数量来确定的。当你只能将给定的输出连接到给定的输入一次(重复的尝试会被忽略)时,可以通过多次调用 connect() 将一个输出连接到多个输入。可以通过这样来实现扇出。这个参数的默认值为 0。
    inputIndex {{optional_inline}}
    -
    一个索引,用于描述当前  AudioNode 会连接到 destination 的哪个输入,它的默认值是 0。索引数字是由输入频道(详见 Audio channels)的数量来确定的。将一个  AudioNode 连接回之前的 AudioNode,以此形成一个圈是可行的。 不过只在这个圈里有至少一个 {{domxref("DelayNode")}} 才可行。否则会抛出一个 NotSupportedError 异常。此参数在 destination 是 {{domxref("AudioParam")}}时不可用。
    +
    一个索引,用于描述当前  AudioNode 会连接到 destination 的哪个输入,它的默认值是 0。索引数字是由输入频道(详见 Audio channels)的数量来确定的。将一个  AudioNode 连接回之前的 AudioNode,以此形成一个圈是可行的。不过只在这个圈里有至少一个 {{domxref("DelayNode")}} 才可行。否则会抛出一个 NotSupportedError 异常。此参数在 destination 是 {{domxref("AudioParam")}}时不可用。

    返回值

    diff --git a/files/zh-cn/web/api/audionode/index.html b/files/zh-cn/web/api/audionode/index.html index 3e33ed2b3f9f50..c26645aa57de33 100644 --- a/files/zh-cn/web/api/audionode/index.html +++ b/files/zh-cn/web/api/audionode/index.html @@ -11,7 +11,7 @@

    处理多个 AudioNode 时,一般来说,一个模块读取它的输入,做一些处理。后输出新生成的结果。

    -

    不同的模块可以连接在一起构建一个处理图。 这样一个处理图包含 {{domxref("AudioContext")}}。 每个 AudioNode 只有一个这样的上下文。

    +

    不同的模块可以连接在一起构建一个处理图。这样一个处理图包含 {{domxref("AudioContext")}}。 每个 AudioNode 只有一个这样的上下文。

    一个 AudioNode 可以作为事件的目标,所以它实现了 {{domxref("EventTarget")}} 接口。

    @@ -24,12 +24,12 @@

    属性

    {{domxref("AudioNode.numberOfInputs")}} {{readonlyInline}}
    -
    返回这个 node 需要的输入数量. Source nodes are defined as nodes having a numberOfInputs attributes with a value of 0.
    +
    返回这个 node 需要的输入数量。Source nodes are defined as nodes having a numberOfInputs attributes with a value of 0.
    {{domxref("AudioNode.numberOfOutputs")}} {{readonlyInline}}
    -
    返回这个 node 的输出数量. Destination nodes, like AudioDestinationNode, have a value of 0 for this attribute.
    +
    返回这个 node 的输出数量。Destination nodes, like AudioDestinationNode, have a value of 0 for this attribute.
    diff --git a/files/zh-cn/web/api/audioparam/index.html b/files/zh-cn/web/api/audioparam/index.html index 46835693320759..7e58ffde020de8 100644 --- a/files/zh-cn/web/api/audioparam/index.html +++ b/files/zh-cn/web/api/audioparam/index.html @@ -6,7 +6,7 @@

    {{APIRef("Web Audio API")}}

    -

    AudioParam 接口代表音频相关的参数, 通常是一个 {{domxref("AudioNode")}} (例如 {{ domxref("GainNode.gain") }}) 的参数。一个 AudioParam 可以被设置为一个具体的值或者数值的改变 ,可以被安排在在一个具体的时刻并且遵循一个特定的模式发生。

    +

    AudioParam 接口代表音频相关的参数, 通常是一个 {{domxref("AudioNode")}} (例如 {{ domxref("GainNode.gain") }}) 的参数。一个 AudioParam 可以被设置为一个具体的值或者数值的改变,可以被安排在在一个具体的时刻并且遵循一个特定的模式发生。

    下面有两种类型的 AudioParam, a-rate 和 k-rate 参数:

    @@ -18,7 +18,7 @@

    每个 {{domxref("AudioNode")}} 定义了其规格中哪一个参数是 a-rate 或 k-rate

    -

    每个 AudioParam 有一个事件的列表,初始化时列表为空。该列表定义了什么时候数值怎么改变。当这个列表不是空的时候,使用 AudioParam.value 属性的改变会被忽略 。事件的列表允许我们去有计划地进行必须在非常精确的时间发生的更改,使用任意的基于时间轴的自动化曲线。被使用的时间在{{domxref("AudioContext.currentTime")}} 中被定义。

    +

    每个 AudioParam 有一个事件的列表,初始化时列表为空。该列表定义了什么时候数值怎么改变。当这个列表不是空的时候,使用 AudioParam.value 属性的改变会被忽略。事件的列表允许我们去有计划地进行必须在非常精确的时间发生的更改,使用任意的基于时间轴的自动化曲线。被使用的时间在{{domxref("AudioContext.currentTime")}} 中被定义。

    属性

    diff --git a/files/zh-cn/web/api/audioscheduledsourcenode/stop/index.html b/files/zh-cn/web/api/audioscheduledsourcenode/stop/index.html index 6e957bbd7114a3..051daad633ac04 100644 --- a/files/zh-cn/web/api/audioscheduledsourcenode/stop/index.html +++ b/files/zh-cn/web/api/audioscheduledsourcenode/stop/index.html @@ -22,7 +22,7 @@

    参数

    when {{optional_inline}}
    -
    声音停止播放的时间,单位为秒。 这个值在 {{domxref("AudioContext")}} 用于其 {{domxref("AudioContext.currentTime", "currentTime")}} 属性的同一时间坐标系统中指定。 省略这个参数,设置为 0 或者负值都会立即停止播放。
    +
    声音停止播放的时间,单位为秒。 这个值在 {{domxref("AudioContext")}} 用于其 {{domxref("AudioContext.currentTime", "currentTime")}} 属性的同一时间坐标系统中指定。省略这个参数,设置为 0 或者负值都会立即停止播放。

    Return value

    diff --git a/files/zh-cn/web/api/audioworkletprocessor/index.html b/files/zh-cn/web/api/audioworkletprocessor/index.html index 4bef6effb2608d..e1daf97dd696ff 100644 --- a/files/zh-cn/web/api/audioworkletprocessor/index.html +++ b/files/zh-cn/web/api/audioworkletprocessor/index.html @@ -20,7 +20,7 @@

    属性

    {{domxref("AudioWorkletProcessor.port", "port")}} {{readonlyinline}}
    -
    返回一个用于在处理程序和其所属的{{domxref("AudioWorkletNode")}}间双向通信的 {{domxref("MessagePort")}} 。 另一端 可通过该节点的{{domxref("AudioWorkletNode.port", "port")}} 属性使用。
    +
    返回一个用于在处理程序和其所属的{{domxref("AudioWorkletNode")}}间双向通信的 {{domxref("MessagePort")}} 。另一端 可通过该节点的{{domxref("AudioWorkletNode.port", "port")}} 属性使用。

    方法

    @@ -35,7 +35,7 @@

    使用说明

    Deriving classes

    -

    要自定义音频处理代码, 你必须从AudioWorkletProcessor 接口派生一个类。这个派生类必须具有在该接口中不曾定义的{{domxref("AudioWorkletProcessor.process", "process")}} 方法。该方法将被每个含有 128 样本帧的块调用并且接受输入和输出数组以及自定义的{{domxref("AudioParam")}}s (如果它们刚被定义了) 的计算值作为参数。您可以使用输入和 音频参数值去填充输出数组,这是默认的用于使输出静音。

    +

    要自定义音频处理代码,你必须从AudioWorkletProcessor 接口派生一个类。这个派生类必须具有在该接口中不曾定义的{{domxref("AudioWorkletProcessor.process", "process")}} 方法。该方法将被每个含有 128 样本帧的块调用并且接受输入和输出数组以及自定义的{{domxref("AudioParam")}}s (如果它们刚被定义了) 的计算值作为参数。您可以使用输入和 音频参数值去填充输出数组,这是默认的用于使输出静音。

    Optionally, if you want custom {{domxref("AudioParam")}}s on your node, you can supply a {{domxref("AudioWorkletProcessor.parameterDescriptors", "parameterDescriptors")}} property as a static getter on the processor. The array of {{domxref("AudioParamDescriptor")}}-based objects returned is used internally to create the {{domxref("AudioParam")}}s during the instantiation of the AudioWorkletNode.

    diff --git a/files/zh-cn/web/api/cache/add/index.html b/files/zh-cn/web/api/cache/add/index.html index 2b2038862754b5..318a2b9f0a9984 100644 --- a/files/zh-cn/web/api/cache/add/index.html +++ b/files/zh-cn/web/api/cache/add/index.html @@ -65,7 +65,7 @@

    Exceptions

    示例

    -

    下面的代码块等待 {{domxref("InstallEvent")}} 事件触发,然后运行 {{domxref("ExtendableEvent.waitUntil","waitUntil")}} 来处理该应用程序的安装过程。 包括调用 {{domxref("CacheStorage.open")}} 来创建一个新的缓存,然后使用 {{domxref("Cache.add")}} 来添加一个请求资源到该缓存。

    +

    下面的代码块等待 {{domxref("InstallEvent")}} 事件触发,然后运行 {{domxref("ExtendableEvent.waitUntil","waitUntil")}} 来处理该应用程序的安装过程。包括调用 {{domxref("CacheStorage.open")}} 来创建一个新的缓存,然后使用 {{domxref("Cache.add")}} 来添加一个请求资源到该缓存。

    this.addEventListener('install', function(event) {
       event.waitUntil(
    diff --git a/files/zh-cn/web/api/cache/addall/index.html b/files/zh-cn/web/api/cache/addall/index.html
    index 2aa980b3d947b0..fc96595761a7f1 100644
    --- a/files/zh-cn/web/api/cache/addall/index.html
    +++ b/files/zh-cn/web/api/cache/addall/index.html
    @@ -7,7 +7,7 @@
     
     

    概要

    -

    {{domxref("Cache")}} 接口的 addAll() 方法接受一个 URL 数组,检索它们,并将生成的 response 对象添加到给定的缓存中。 在检索期间创建的 request 对象成为存储的 response 操作的 key。

    +

    {{domxref("Cache")}} 接口的 addAll() 方法接受一个 URL 数组,检索它们,并将生成的 response 对象添加到给定的缓存中。在检索期间创建的 request 对象成为存储的 response 操作的 key。

    NoteaddAll() will overwrite any key/value pairs previously stored in the cache that match the request, but will fail if a resulting put() operation would overwrite a previous cache entry created by the same addAll() method.

    @@ -58,7 +58,7 @@

    Exceptions

    示例

    -

    此代码块等待一个 {{domxref("InstallEvent")}} 事件触发,然后运行 {{domxref("ExtendableEvent.waitUntil","waitUntil")}} 来处理该应用程序的安装进程。 包括调用 {{domxref("CacheStorage.open")}} 创建一个新的 cache,然后使用 addAll() 添加一系列资源。

    +

    此代码块等待一个 {{domxref("InstallEvent")}} 事件触发,然后运行 {{domxref("ExtendableEvent.waitUntil","waitUntil")}} 来处理该应用程序的安装进程。包括调用 {{domxref("CacheStorage.open")}} 创建一个新的 cache,然后使用 addAll() 添加一系列资源。

    this.addEventListener('install', function(event) {
       event.waitUntil(
    diff --git a/files/zh-cn/web/api/cache/delete/index.html b/files/zh-cn/web/api/cache/delete/index.html
    index 0c3908ad5396f4..40526c4c284459 100644
    --- a/files/zh-cn/web/api/cache/delete/index.html
    +++ b/files/zh-cn/web/api/cache/delete/index.html
    @@ -8,7 +8,7 @@
     ---
     

    {{APIRef("Service Workers API")}}{{SeeCompatTable}}

    -

    {{domxref("Cache")}} 接口的 delete() 方法查询 request 为 key 的 {{domxref("Cache")}} 条目,如果找到,则删除该 {{domxref("Cache")}} 条目并返回 resolve 为 true 的 {{jsxref("Promise")}} 。 如果没有找到,则返回 resolve 为 false 的 {{jsxref("Promise")}} 。

    +

    {{domxref("Cache")}} 接口的 delete() 方法查询 request 为 key 的 {{domxref("Cache")}} 条目,如果找到,则删除该 {{domxref("Cache")}} 条目并返回 resolve 为 true 的 {{jsxref("Promise")}} 。如果没有找到,则返回 resolve 为 false 的 {{jsxref("Promise")}} 。

    语法

    diff --git a/files/zh-cn/web/api/cache/index.html b/files/zh-cn/web/api/cache/index.html index aa6a40b1aca2ac..7d81cf183fdc37 100644 --- a/files/zh-cn/web/api/cache/index.html +++ b/files/zh-cn/web/api/cache/index.html @@ -60,13 +60,13 @@

    示例

    此代码段来自 service worker selective caching sample. (请参阅 selective caching live) 。该代码使用{{domxref("CacheStorage.open", "CacheStorage.open(cacheName)")}} 打开任何具有以font/开始的Content-Type 头的{{domxref("Cache")}}对象。

    -

    代码然后使用{{domxref("Cache.match", "Cache.match(request, options)")}}查看缓存中是否已经有一个匹配的 font,如果是,则返回它。 如果没有匹配的字体,代码将通过网络获取字体,并使用 {{domxref("Cache.put","Cache.put(request, response)")}}来缓存获取的资源。

    +

    代码然后使用{{domxref("Cache.match", "Cache.match(request, options)")}}查看缓存中是否已经有一个匹配的 font,如果是,则返回它。如果没有匹配的字体,代码将通过网络获取字体,并使用 {{domxref("Cache.put","Cache.put(request, response)")}}来缓存获取的资源。

    -

    代码处理从{{domxref("Globalfetch.fetch","fetch()")}} 操作抛出的异常。 请注意,HTTP 错误响应(例如 404)不会触发异常。 它将返回一个具有相应错误代码集的正常响应对象。

    +

    代码处理从{{domxref("Globalfetch.fetch","fetch()")}} 操作抛出的异常。请注意,HTTP 错误响应(例如 404)不会触发异常。它将返回一个具有相应错误代码集的正常响应对象。

    -

    该代码片段还展示了服务工作线程使用的缓存版本控制的最佳实践。 虽然在这个例子中只有一个缓存,但同样的方法可用于多个缓存。 它将缓存的速记标识符映射到特定的版本化缓存名称。 代码还会删除命名不在 CURRENT_CACHES 中的所有缓存。

    +

    该代码片段还展示了服务工作线程使用的缓存版本控制的最佳实践。虽然在这个例子中只有一个缓存,但同样的方法可用于多个缓存。它将缓存的速记标识符映射到特定的版本化缓存名称。代码还会删除命名不在 CURRENT_CACHES 中的所有缓存。

    -
    注意: 在 Chrome 中,请访问 chrome://inspect/#service-workers ,然后单击注册的服务工作线程下面的“inspect”链接,查看 service-worker.js 脚本正在执行的各种操作的日志记录。
    +
    注意: 在 Chrome 中,请访问 chrome://inspect/#service-workers,然后单击注册的服务工作线程下面的“inspect”链接,查看 service-worker.js 脚本正在执行的各种操作的日志记录。
    var CACHE_VERSION = 1;
     
    diff --git a/files/zh-cn/web/api/cache/keys/index.html b/files/zh-cn/web/api/cache/keys/index.html
    index 6f536740d0dec3..981f20cf1ea820 100644
    --- a/files/zh-cn/web/api/cache/keys/index.html
    +++ b/files/zh-cn/web/api/cache/keys/index.html
    @@ -32,9 +32,9 @@ 

    参数

    options {{optional_inline}}
    一个对象,它的属性决定了 keys 操作中的匹配操作是如何执行的。可选的属性有:
      -
    • ignoreSearch: 一个 {{domxref("Boolean")}} 值,指定了匹配操作是否忽略 url 中的查询部分。如果为 true ,在执行匹配操作时, http://foo.com/?value=bar 的 ?value=bar 部分将会被忽。默认为 false 。
    • -
    • ignoreMethod: 一个 {{domxref("Boolean")}} 值,当为 true 时, 将会阻止匹配操作验证 {{domxref("Request")}} 的 HTTP 方法(通常只有 GET 和 HEAD 方法被允许)。默认为 false 。
    • -
    • ignoreVary: 一个 {{domxref("Boolean")}} 值,当为 true 时,告诉匹配操作不要验证 VARY 头部。换句话说,如果 URL 匹配,你会得到一个匹配而不管 {{domxref("Response")}} 对象是否有 VARY 头部。默认为 false 。
    • +
    • ignoreSearch: 一个 {{domxref("Boolean")}} 值,指定了匹配操作是否忽略 url 中的查询部分。如果为 true,在执行匹配操作时, http://foo.com/?value=bar 的 ?value=bar 部分将会被忽。默认为 false 。
    • +
    • ignoreMethod: 一个 {{domxref("Boolean")}} 值,当为 true 时, 将会阻止匹配操作验证 {{domxref("Request")}} 的 HTTP 方法(通常只有 GET 和 HEAD 方法被允许)。默认为 false。
    • +
    • ignoreVary: 一个 {{domxref("Boolean")}} 值,当为 true 时,告诉匹配操作不要验证 VARY 头部。换句话说,如果 URL 匹配,你会得到一个匹配而不管 {{domxref("Response")}} 对象是否有 VARY 头部。默认为 false。
    • cacheName: 一个 {{domxref("DOMString")}} 值,描述了在一个特定的 cache 中进行匹配。注意这个选项会被 Cache.keys() 方法忽略。
    diff --git a/files/zh-cn/web/api/cachestorage/has/index.html b/files/zh-cn/web/api/cachestorage/has/index.html index 8a2f824a3f89d5..73941f99c7cb45 100644 --- a/files/zh-cn/web/api/cachestorage/has/index.html +++ b/files/zh-cn/web/api/cachestorage/has/index.html @@ -27,7 +27,7 @@

    参数

    例子

    -

    在下面的例子中首先检测是否有名为 v1 的缓存存在, 如果存在我们会向其添加内容,,如果不存在我们会做些对应的初始化动作。

    +

    在下面的例子中首先检测是否有名为 v1 的缓存存在,如果存在我们会向其添加内容,,如果不存在我们会做些对应的初始化动作。

    caches.has('v1').then(function(hasCache) {
       if (!hasCache) {
    diff --git a/files/zh-cn/web/api/cachestorage/match/index.html b/files/zh-cn/web/api/cachestorage/match/index.html
    index c5c47f6d0e30ae..7ea94ae52614a8 100644
    --- a/files/zh-cn/web/api/cachestorage/match/index.html
    +++ b/files/zh-cn/web/api/cachestorage/match/index.html
    @@ -26,10 +26,10 @@ 

    参数

    options {{optional_inline}}
    这个对象中的属性控制在匹配操作中如何进行匹配选择。可选择参数如下:
      -
    • ignoreSearch: {{domxref("Boolean")}}值, 指定匹配过程是否应该忽略 url 中查询参数。举个例子,如果该参数设置为true, 那么 ?value=bar 作为 http://foo.com/?value=bar 中的查询参数将会在匹配过程中被忽略。该参数默认 false
    • +
    • ignoreSearch: {{domxref("Boolean")}}值,指定匹配过程是否应该忽略 url 中查询参数。举个例子,如果该参数设置为true, 那么 ?value=bar 作为 http://foo.com/?value=bar 中的查询参数将会在匹配过程中被忽略。该参数默认 false
    • ignoreMethod:  {{domxref("Boolean")}} 值,当被设置为 true 时,将会阻止在匹配操作中对 {{domxref("Request")}}请求的 http 方式的验证 (通常只允许 GETHEAD 两种请求方式)。该参数默认为 false.
    • ignoreVary:  {{domxref("Boolean")}} 值,当该字段被设置为 true, 告知在匹配操作中忽略对VARY头信息的匹配。换句话说,当请求 URL 匹配上,你将获取匹配的 {{domxref("Response")}} 对象,无论请求的 VARY  头存在或者没有。该参数默认为 false.
    • -
    • cacheName:  {{domxref("DOMString")}} 值, 表示所要搜索的缓存名称。
    • +
    • cacheName:  {{domxref("DOMString")}} 值,表示所要搜索的缓存名称。
    diff --git a/files/zh-cn/web/api/cdatasection/index.html b/files/zh-cn/web/api/cdatasection/index.html index c2a952b41325c2..c96a844d74a491 100644 --- a/files/zh-cn/web/api/cdatasection/index.html +++ b/files/zh-cn/web/api/cdatasection/index.html @@ -19,10 +19,10 @@

    例如:

    -
    <foo>这是一个CDATA section: <![CDATA[  < > & ]]> 其中包含了一些没有转义的字符。 </foo>
    +
    <foo>这是一个 CDATA section: <![CDATA[  < > & ]]> 其中包含了一些没有转义的字符。 </foo>
     
    -

    唯一的例外就是,在一个 CDATA 片段中不可以使用  CDATA 片段本身的闭合标签片段:

    +

    唯一的例外就是,在一个 CDATA 片段中不可以使用  CDATA 片段本身的闭合标签片段:

    <![CDATA[  ]]> 会引发错误   ]]>
     
    diff --git a/files/zh-cn/web/api/channelmergernode/channelmergernode/index.html b/files/zh-cn/web/api/channelmergernode/channelmergernode/index.html index a948dc39252852..d0c54d587eaa8d 100644 --- a/files/zh-cn/web/api/channelmergernode/channelmergernode/index.html +++ b/files/zh-cn/web/api/channelmergernode/channelmergernode/index.html @@ -21,7 +21,7 @@

    参数

    options {{optional_inline}}
    定义你希望 ChannelMergerNode 具有的属性的 ChannelMergerOptions 字典对象(它还继承了 AudioNodeOptions 字典中定义的选项):
      -
    • numberOfInputs: 定义了 {{domxref("ChannelMergerNode")}} 应该拥有的输入数量。如果没有指定,使用默认值6。
    • +
    • numberOfInputs: 定义了 {{domxref("ChannelMergerNode")}} 应该拥有的输入数量。如果没有指定,使用默认值 6。
    diff --git a/files/zh-cn/web/api/channelmergernode/index.html b/files/zh-cn/web/api/channelmergernode/index.html index 847a7d61b4c0b4..ca0d0a1cd45ccf 100644 --- a/files/zh-cn/web/api/channelmergernode/index.html +++ b/files/zh-cn/web/api/channelmergernode/index.html @@ -9,7 +9,7 @@

    -

    如果 ChannelMergerNode 用于一个单一输出,但输入数量与用于合并的信道数量相同;输入的数量被定义为其构造函数的参数及对 {{domxref("AudioContext.createChannelMerger")}} 的调用。 如果没有给出值,则为默认值 6

    +

    如果 ChannelMergerNode 用于一个单一输出,但输入数量与用于合并的信道数量相同;输入的数量被定义为其构造函数的参数及对 {{domxref("AudioContext.createChannelMerger")}} 的调用。如果没有给出值,则为默认值 6

    使用 ChannelMergerNode,可以创建比渲染硬件能处理的更多的通道输出。在这种情况下,当信号发送至 {{domxref("AudioContext.listener")}} 对象时,额外的信道将被忽略。

    @@ -51,7 +51,7 @@

    属性

    方法

    -

    没具体方法; 从其父级继承方法, {{domxref("AudioNode")}}。

    +

    没具体方法; 从其父级继承方法,{{domxref("AudioNode")}}。

    例子

    diff --git a/files/zh-cn/web/api/characterdata/index.html b/files/zh-cn/web/api/characterdata/index.html index b718b3552de226..28613301f14905 100644 --- a/files/zh-cn/web/api/characterdata/index.html +++ b/files/zh-cn/web/api/characterdata/index.html @@ -5,7 +5,7 @@ ---

    {{APIRef("DOM")}}

    -

    CharacterData 抽象接口(abstract interface)代表 {{domxref("Node")}} 对象包含的字符。这是一个抽象接口,意味着没有 CharacterData 类型的对象。 它是在其他接口中被实现的,如 {{domxref("Text")}}、{{domxref("Comment")}} 或 {{domxref("ProcessingInstruction")}} 这些非抽象接口。

    +

    CharacterData 抽象接口(abstract interface)代表 {{domxref("Node")}} 对象包含的字符。这是一个抽象接口,意味着没有 CharacterData 类型的对象。它是在其他接口中被实现的,如 {{domxref("Text")}}、{{domxref("Comment")}} 或 {{domxref("ProcessingInstruction")}} 这些非抽象接口。

    属性

    @@ -34,9 +34,9 @@

    方法

    {{domxref("CharacterData.insertData()")}}
    在 CharacterData.data 字符串中,在指定的位置,插入指定的字符;当方法返回时,data 包含的是已修改的 {{domxref("DOMString")}}.
    {{domxref("ChildNode.remove()")}} {{experimental_inline}}
    -
    把对象从其父节点的children list中删除。
    +
    把对象从其父节点的 children list 中删除。
    {{domxref("CharacterData.replaceData()")}}
    -
    在 CharacterData.data 字符串中,从指定位置开始,把指定数量的字符替换为指定的 {{domxref("DOMString")}}; 当方法返回时, data 包含的是已修改的 {{domxref("DOMString")}}.
    +
    在 CharacterData.data 字符串中,从指定位置开始,把指定数量的字符替换为指定的 {{domxref("DOMString")}}; 当方法返回时,data 包含的是已修改的 {{domxref("DOMString")}}.
    {{domxref("CharacterData.substringData()")}}
    返回一个包含了从 CharacterData.data 中的指定位置开始,指定长度的 {{domxref("DOMString")}} 。
    diff --git a/files/zh-cn/web/api/css_object_model/determining_the_dimensions_of_elements/index.html b/files/zh-cn/web/api/css_object_model/determining_the_dimensions_of_elements/index.html index f83ad23706c869..77fa1b2d9c9755 100644 --- a/files/zh-cn/web/api/css_object_model/determining_the_dimensions_of_elements/index.html +++ b/files/zh-cn/web/api/css_object_model/determining_the_dimensions_of_elements/index.html @@ -13,7 +13,7 @@

    元素占用了多少空间?

    -

    如果你需要知道元素总共占用了多少空间,包括可视内容、滚动条(如果有的话)、内边距和边框的宽度,你会使用  offsetWidthoffsetHeight 属性, 大多数情况下,当元素没有什么形状上的变化时,他们与 getBoundingClientRect()的宽高一致。但是如果发生变化,offsetWidth 和 offsetHeight 将返回元素的布局宽高,而 getBoundingClientRect() 将返回实际渲染的宽高。例如:如果元素的宽 width:100px,变化 transform:scale(0.5),此时 getBoundingClientRect() 将返回宽 50,而 offsetWidth 将返回宽 100.

    +

    如果你需要知道元素总共占用了多少空间,包括可视内容、滚动条(如果有的话)、内边距和边框的宽度,你会使用  offsetWidthoffsetHeight 属性,大多数情况下,当元素没有什么形状上的变化时,他们与 getBoundingClientRect()的宽高一致。但是如果发生变化,offsetWidth 和 offsetHeight 将返回元素的布局宽高,而 getBoundingClientRect() 将返回实际渲染的宽高。例如:如果元素的宽 width:100px,变化 transform:scale(0.5),此时 getBoundingClientRect() 将返回宽 50,而 offsetWidth 将返回宽 100.

    Image:Dimensions-offset.png

    diff --git a/files/zh-cn/web/api/css_object_model/index.html b/files/zh-cn/web/api/css_object_model/index.html index df22ea9902e595..60da3b8d9b3212 100644 --- a/files/zh-cn/web/api/css_object_model/index.html +++ b/files/zh-cn/web/api/css_object_model/index.html @@ -9,7 +9,7 @@ - TopicStub translation_of: Web/API/CSS_Object_Model --- -

    CSS Object Model 是一组允许用 JavaScript 操纵 CSS 的 API。 它是继 DOM 和 HTML API 之后,又一个操纵 CSS 的接口,从而能够动态地读取和修改 CSS 样式。

    +

    CSS Object Model 是一组允许用 JavaScript 操纵 CSS 的 API。它是继 DOM 和 HTML API 之后,又一个操纵 CSS 的接口,从而能够动态地读取和修改 CSS 样式。

    API 参考

    diff --git a/files/zh-cn/web/api/csspagerule/index.html b/files/zh-cn/web/api/csspagerule/index.html index fa396a871da2e4..058e3cd43cc8ed 100644 --- a/files/zh-cn/web/api/csspagerule/index.html +++ b/files/zh-cn/web/api/csspagerule/index.html @@ -20,7 +20,7 @@

    语法

    Properties

    -

     {{domxref("CSSRule")}}, CSSPageRule 也实现了此接口的属性。 它具有以下特定属性:

    +

     {{domxref("CSSRule")}}, CSSPageRule 也实现了此接口的属性。它具有以下特定属性:

    {{domxref("CSSPageRule.selectorText")}}
    @@ -31,7 +31,7 @@

    Properties

    Methods

    -

    作为 {{domxref("CSSRule")}}, CSSPageRule 的 CSSPageRule 还实现了该接口的方法。 它没有具体方法。

    +

    作为 {{domxref("CSSRule")}}, CSSPageRule 的 CSSPageRule 还实现了该接口的方法。它没有具体方法。

    Specifications

    diff --git a/files/zh-cn/web/api/cssstyledeclaration/setproperty/index.html b/files/zh-cn/web/api/cssstyledeclaration/setproperty/index.html index eaa9eba8f430df..3cca774926b27c 100644 --- a/files/zh-cn/web/api/cssstyledeclaration/setproperty/index.html +++ b/files/zh-cn/web/api/cssstyledeclaration/setproperty/index.html @@ -32,7 +32,7 @@

    返回值

    异常

      -
    • {{domxref('DOMException')}} (NoModificationAllowedError): 如果属性或装饰块为只读的,抛出此异常。
    • +
    • {{domxref('DOMException')}} (NoModificationAllowedError):如果属性或装饰块为只读的,抛出此异常。

    JavaScript 有一个特别的,更简单的在 CSSStyleDeclaration 对象上设置 CSS 属性值的语法:

    diff --git a/files/zh-cn/web/api/cssstylesheet/index.html b/files/zh-cn/web/api/cssstylesheet/index.html index ad73dcdefbc166..58c53b7c604255 100644 --- a/files/zh-cn/web/api/cssstylesheet/index.html +++ b/files/zh-cn/web/api/cssstylesheet/index.html @@ -65,7 +65,7 @@

    遗留属性

    {{domxref("CSSStyleSheet.rules", "rules")}} {{ReadOnlyInline}}
    -
    rules 属性的功能与标准的{{domxref("CSSStyleSheet.cssRules", "cssRules")}}属性相同;它返回一个实时的 {{domxref("CSSRuleList")}}, 其中包含样式表中所有规则的一个最新列表。
    +
    rules 属性的功能与标准的{{domxref("CSSStyleSheet.cssRules", "cssRules")}}属性相同;它返回一个实时的 {{domxref("CSSRuleList")}},其中包含样式表中所有规则的一个最新列表。

    遗留方法

    diff --git a/files/zh-cn/web/api/cssvalue/index.html b/files/zh-cn/web/api/cssvalue/index.html index d70ba2bd008d1b..9412d70ad471c4 100644 --- a/files/zh-cn/web/api/cssvalue/index.html +++ b/files/zh-cn/web/api/cssvalue/index.html @@ -19,7 +19,7 @@

    属性

    {{domxref("CSSValue.cssText")}}
    {{domxref("DOMString")}} 代表当前值。
    {{domxref("CSSValue.cssValueType")}} {{readonlyInline}}
    -
    一个 unsigned short 类型的数据用来定义了值的类型。 可取值为: +
    一个 unsigned short 类型的数据用来定义了值的类型。可取值为: diff --git a/files/zh-cn/web/api/datatransfer/dropeffect/index.md b/files/zh-cn/web/api/datatransfer/dropeffect/index.md index 5809817db15adf..5f415204d747d5 100644 --- a/files/zh-cn/web/api/datatransfer/dropeffect/index.md +++ b/files/zh-cn/web/api/datatransfer/dropeffect/index.md @@ -17,7 +17,7 @@ translation_of: Web/API/DataTransfer/dropEffect 对于 {{event("dragenter")}} 和 {{event("dragover")}} 事件,`dropEffect` 会根据用户的请求的行为进行初始化。具体如何初始化和浏览器平台有关,但是通常来讲,用户可以通过按住修改键,比如 alt 键来修改想要的行为。当我们期望得到一个指定的行为时而不是用户的请求行为时,可以通过 {{event("dragenter")}} 和 {{event("dragover")}} 事件处理修改 `dropEffect` 的值。 -对于 {{event("drop")}} 和 {{event("dragend")}} 事件,`dropEffect` 会被设置为想要得到的值,即最后一次 {{event("dragenter")}} 或 {{event("dragover")}} 事件后 `dropEffect` 的值。例如,在一个 {{event("dragend")}} 事件中,如果期望得到的 dropEffect 是 “move”,那么被拖拽的数据会从源中移除。 +对于 {{event("drop")}} 和 {{event("dragend")}} 事件,`dropEffect` 会被设置为想要得到的值,即最后一次 {{event("dragenter")}} 或 {{event("dragover")}} 事件后 `dropEffect` 的值。例如,在一个 {{event("dragend")}} 事件中,如果期望得到的 dropEffect 是“move”,那么被拖拽的数据会从源中移除。 ## 语法 diff --git a/files/zh-cn/web/api/datatransfer/effectallowed/index.html b/files/zh-cn/web/api/datatransfer/effectallowed/index.html index 55b02601568092..17a410bb96f904 100644 --- a/files/zh-cn/web/api/datatransfer/effectallowed/index.html +++ b/files/zh-cn/web/api/datatransfer/effectallowed/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("HTML Drag and Drop API")}}
    -

    DataTransfer.effectAllowed 属性指定拖放操作所允许的一个效果。copy 操作用于指示被拖动的数据将从当前位置复制到放置位置。move 操作用于指定被拖动的数据将被移动。 link操作用于指示将在源和放置位置之间创建某种形式的关系或连接。

    +

    DataTransfer.effectAllowed 属性指定拖放操作所允许的一个效果。copy 操作用于指示被拖动的数据将从当前位置复制到放置位置。move 操作用于指定被拖动的数据将被移动。link操作用于指示将在源和放置位置之间创建某种形式的关系或连接。

    应该在{{event("dragstart")}}事件中设置此属性,以便为拖动源设置所需的拖动效果。在 {{event("dragenter")}} 和{{event("dragover")}} 事件处理程序中,该属性将设置为在{{event("dragstart")}} 事件期间分配的任何值,因此,可以使用effectAllowed来确定允许哪个效果。

    diff --git a/files/zh-cn/web/api/datatransfer/files/index.html b/files/zh-cn/web/api/datatransfer/files/index.html index 538492d64e7d7e..08c9733e86d0f4 100644 --- a/files/zh-cn/web/api/datatransfer/files/index.html +++ b/files/zh-cn/web/api/datatransfer/files/index.html @@ -16,7 +16,7 @@

    语法

    返回值

    -

    拖动操作中的文件{{domxref("FileList","列表")}},操作中每个文件的一个列表项。 如果拖动操作没有文件,此列表为空。

    +

    拖动操作中的文件{{domxref("FileList","列表")}},操作中每个文件的一个列表项。如果拖动操作没有文件,此列表为空。

    举个例子

    diff --git a/files/zh-cn/web/api/datatransfer/setdragimage/index.html b/files/zh-cn/web/api/datatransfer/setdragimage/index.html index ade8466e1b4de8..9bed44affb0414 100644 --- a/files/zh-cn/web/api/datatransfer/setdragimage/index.html +++ b/files/zh-cn/web/api/datatransfer/setdragimage/index.html @@ -72,7 +72,7 @@

    举个例子

     // 设置拖动的格式和数据。使用事件目标的 id 作为数据 ev.dataTransfer.setData("text/plain", ev.target.id);  // 创建一个图像并且使用它作为拖动图像 - // 请注意: 改变 "example.gif" 为一个已经存在的图片 + // 请注意:改变 "example.gif" 为一个已经存在的图片  // 或者,一个还没有创建出来的图片,那么浏览器将会使用默认的拖动图片  // 译者注:默认的拖动图片与拖动对象没有联系。一般是一个小型文件图标 var img = new Image(); diff --git a/files/zh-cn/web/api/datatransfer/types/index.html b/files/zh-cn/web/api/datatransfer/types/index.html index 723876ee106037..5f38a63f6e6003 100644 --- a/files/zh-cn/web/api/datatransfer/types/index.html +++ b/files/zh-cn/web/api/datatransfer/types/index.html @@ -6,9 +6,9 @@

    {{APIRef("HTML Drag and Drop API")}}

    -

    DataTransfer.types 是只读属性。它返回一个我们在{{event("dragstart")}}事件中设置的拖动数据格式 (如 {{domxref("DOMString","字符串")}}) 的数组。 格式顺序与拖动操作中包含的数据顺序相同。  

    +

    DataTransfer.types 是只读属性。它返回一个我们在{{event("dragstart")}}事件中设置的拖动数据格式 (如 {{domxref("DOMString","字符串")}}) 的数组。格式顺序与拖动操作中包含的数据顺序相同。  

    -

    这些格式是指定数据类型或格式的 Unicode 字符串,通常由 MIME 类型给出。 一些非 MIME 类型的值是由于历史遗留原因(例如“text”)而特殊设置的。

    +

    这些格式是指定数据类型或格式的 Unicode 字符串,通常由 MIME 类型给出。一些非 MIME 类型的值是由于历史遗留原因(例如“text”)而特殊设置的。

    语法

    diff --git a/files/zh-cn/web/api/datatransferitem/webkitgetasentry/index.html b/files/zh-cn/web/api/datatransferitem/webkitgetasentry/index.html index 94b41e8765c89e..13080a5d3992ab 100644 --- a/files/zh-cn/web/api/datatransferitem/webkitgetasentry/index.html +++ b/files/zh-cn/web/api/datatransferitem/webkitgetasentry/index.html @@ -137,7 +137,7 @@

    JavaScript 内容

    结果

    -

    你可以通过下面的尝试看看它是如何工作的。 找到一些文件和目录并将其拖入,然后查看生成的输出。

    +

    你可以通过下面的尝试看看它是如何工作的。找到一些文件和目录并将其拖入,然后查看生成的输出。

    {{ EmbedLiveSample('Example', 600, 400) }}

    diff --git a/files/zh-cn/web/api/devicemotionevent/index.html b/files/zh-cn/web/api/devicemotionevent/index.html index 94aef2b8544244..6887ce38cf5228 100644 --- a/files/zh-cn/web/api/devicemotionevent/index.html +++ b/files/zh-cn/web/api/devicemotionevent/index.html @@ -17,7 +17,7 @@

    DeviceMotionEvent 为 web 开发者提供了关于设备的位置和方向的改变速度的信息。

    -

    警告:目前,Firefox 和 Chrome 处理坐标的方式不同。 使用时要多加注意。

    +

    警告:目前,Firefox 和 Chrome 处理坐标的方式不同。使用时要多加注意。

    构造函数

    @@ -35,7 +35,7 @@

    属性

    {{domxref("DeviceMotionEvent.accelerationIncludingGravity")}} {{readonlyinline}}
    提供了设备在 X,Y,Z 轴方向上带重力的加速度的对象。加速度的单位为 m/s2
    {{domxref("DeviceMotionEvent.rotationRate")}} {{readonlyinline}}
    -
    提供了设备在 alpha,beta, gamma 轴方向上旋转的速率的对象。旋转速率的单位为度每秒。
    +
    提供了设备在 alpha,beta,gamma 轴方向上旋转的速率的对象。旋转速率的单位为度每秒。
    {{domxref("DeviceMotionEvent.interval")}} {{readonlyinline}}
    表示从设备获取数据的间隔时间,单位是毫秒。
    diff --git a/files/zh-cn/web/api/devicemotionevent/interval/index.html b/files/zh-cn/web/api/devicemotionevent/interval/index.html index e4c63539522f45..f5ed91d159feee 100644 --- a/files/zh-cn/web/api/devicemotionevent/interval/index.html +++ b/files/zh-cn/web/api/devicemotionevent/interval/index.html @@ -11,7 +11,7 @@ ---

    {{ apiref("Device Orientation Events") }}

    -

    返回从底层硬件获取数据的时间间隔(单位:毫秒)。 您可以使用它来确定运动事件的粒度。

    +

    返回从底层硬件获取数据的时间间隔(单位:毫秒)。您可以使用它来确定运动事件的粒度。

    语法

    diff --git a/files/zh-cn/web/api/deviceorientationevent/beta/index.html b/files/zh-cn/web/api/deviceorientationevent/beta/index.html index 7bcf13a8bd398f..6ad3dd6d096683 100644 --- a/files/zh-cn/web/api/deviceorientationevent/beta/index.html +++ b/files/zh-cn/web/api/deviceorientationevent/beta/index.html @@ -5,7 +5,7 @@ ---

    {{ ApiRef("Device Orientation Events") }}

    -

    返回设备旋转时 X 轴的值。即: 角度的数值,范围介于-180 ------ 180 之间  表示设备正在向前或向后倾斜。更多信息见  方向和运动数据详解

    +

    返回设备旋转时 X 轴的值。即: 角度的数值,范围介于 -180 ------ 180 之间  表示设备正在向前或向后倾斜。更多信息见  方向和运动数据详解

    语法

    diff --git a/files/zh-cn/web/api/document/alinkcolor/index.html b/files/zh-cn/web/api/document/alinkcolor/index.html index fda77c0533e2ef..f7e8ea8698ddb9 100644 --- a/files/zh-cn/web/api/document/alinkcolor/index.html +++ b/files/zh-cn/web/api/document/alinkcolor/index.html @@ -20,7 +20,7 @@

    语法

    color = document.alinkColor
     document.alinkColor  = color
    -color 可以是一个 “颜色名称”(例如,“blue”,“darkblue”,等)或者是一个 “十六进制的颜色值”(例如,#0000ff)
    +color 可以是一个“颜色名称”(例如,“blue”,“darkblue”,等)或者是一个“十六进制的颜色值”(例如,#0000ff)

    注意

    diff --git a/files/zh-cn/web/api/document/cookie/index.html b/files/zh-cn/web/api/document/cookie/index.html index 756a110856a3fc..7cefb1089a1195 100644 --- a/files/zh-cn/web/api/document/cookie/index.html +++ b/files/zh-cn/web/api/document/cookie/index.html @@ -54,7 +54,7 @@

    示例 1: 简单用法

    document.cookie = "name=oeschger";
     document.cookie = "favorite_food=tripe";
     alert(document.cookie);
    -// 显示: name=oeschger;favorite_food=tripe
    +// 显示:name=oeschger;favorite_food=tripe
     

    示例 2: 得到名为 test2 的 cookie

    @@ -65,7 +65,7 @@

    示例 2: 得到名为 test2 的 coo var myCookie = document.cookie.replace(/(?:(?:^|.*;\s*)test2\s*\=\s*([^;]*).*$)|^.*$/, "$1"); alert(myCookie); -// 显示: World +// 显示:World

    示例 3: 只执行某事一次

    diff --git a/files/zh-cn/web/api/document/createelement/index.html b/files/zh-cn/web/api/document/createelement/index.html index 86b0a68865c030..9b32ab8b8333b7 100644 --- a/files/zh-cn/web/api/document/createelement/index.html +++ b/files/zh-cn/web/api/document/createelement/index.html @@ -72,7 +72,7 @@

    JavaScript

    Web component 示例

    -

    以下示例片段取自我们的 expanding-list-web-component 示例 (实时查看)。 在这个案例中, 我们的自定义元素继承了以 {{htmlelement("ul")}} 元素为代表的 {{domxref("HTMLUListElement")}}.

    +

    以下示例片段取自我们的 expanding-list-web-component 示例 (实时查看)。 在这个案例中,我们的自定义元素继承了以 {{htmlelement("ul")}} 元素为代表的 {{domxref("HTMLUListElement")}}.

    // 为新元素创建一个类
     class ExpandingList extends HTMLUListElement {
    @@ -108,7 +108,7 @@ 

    注意

  • 当创建一个带限制条件的元素时,请使用{{ domxref("document.createElementNS()") }}。
  • Gecko 2.0{{ geckoRelease("2.0") }}之前,quirks 模式下 tagName 可以包含尖括号 (<和>);从 Gecko2.0 开始,该方法在 quirks 模式和标准模式下表现一致。
  • 从 Gecko19.0{{ geckoRelease("19.0") }}开始, createElement(null)createElement("null") 相同。Opera 也会将 null 字符串化,但是 Chrome 和 IE 都会抛出错误。
  • -
  • 从 Gecko22.0{{geckoRelease("22.0")}}开始,当参数为"bgsounds", "multicol", 或"image"时, createElement() 不再使用 {{domxref("HTMLSpanElement")}} 接口, 参数为 "bgsound" 和 "multicol" 时,使用 HTMLUnknownElement ,为“image”时使用{{domxref("HTMLElement")}} HTMLElement
  • +
  • 从 Gecko22.0{{geckoRelease("22.0")}}开始,当参数为"bgsounds", "multicol", 或"image"时, createElement() 不再使用 {{domxref("HTMLSpanElement")}} 接口,参数为 "bgsound" 和 "multicol" 时,使用 HTMLUnknownElement ,为“image”时使用{{domxref("HTMLElement")}} HTMLElement
  • createElement 的 Gecko 实现不遵循 XUL 和 XHTML 的 DOM 说明文档:创建元素的localNamenamespaceURI 不会被设置为 null. 更多细节详见 {{Bug(280692)}}。
  • diff --git a/files/zh-cn/web/api/document/createelementns/index.html b/files/zh-cn/web/api/document/createelementns/index.html index 1701e231fb9ffa..8ba38a9ef6610c 100644 --- a/files/zh-cn/web/api/document/createelementns/index.html +++ b/files/zh-cn/web/api/document/createelementns/index.html @@ -29,7 +29,7 @@

    参数

    指定要创建的元素的类型的字符串。 创建的元素的nodeName属性使用 qualifiedName 的值进行初始化。
    options可选的
    一个可选的包含单个属性的 ElementCreationOptions 对象,其值是预先使用 customElements.define() 定义的自定义元素的标签名称。为了向后兼容自定义元素规范的早期版本,一些浏览器允许您在此使用字符串替代对象,其中字符串的值是自定义元素的标签名称。有关如何使用此参数的详情,请参阅原生 HTML 元素
    -
    新元素将被赋予一个属性,其值是自定义元素的标签名称。 自定义元素是实验中的功能,目前仅在某些浏览器中可用。
    +
    新元素将被赋予一个属性,其值是自定义元素的标签名称。自定义元素是实验中的功能,目前仅在某些浏览器中可用。

    返回值

    diff --git a/files/zh-cn/web/api/document/createevent/index.html b/files/zh-cn/web/api/document/createevent/index.html index 1b8a4737b6880d..e80ae6af96f87f 100644 --- a/files/zh-cn/web/api/document/createevent/index.html +++ b/files/zh-cn/web/api/document/createevent/index.html @@ -20,7 +20,7 @@

    语法

    • event 就是被创建的 Event 对象。
    • -
    • type 是一个字符串,表示要创建的事件类型。事件类型可能包括"UIEvents", "MouseEvents", "MutationEvents", 或者 "HTMLEvents"。请查看 Notes 章节获取详细信息 。
    • +
    • type 是一个字符串,表示要创建的事件类型。事件类型可能包括"UIEvents", "MouseEvents", "MutationEvents", 或者 "HTMLEvents"。请查看 Notes 章节获取详细信息。

    示例

    diff --git a/files/zh-cn/web/api/document/createnodeiterator/index.html b/files/zh-cn/web/api/document/createnodeiterator/index.html index 11dfa5fbfd862e..a9151db17693d6 100644 --- a/files/zh-cn/web/api/document/createnodeiterator/index.html +++ b/files/zh-cn/web/api/document/createnodeiterator/index.html @@ -21,7 +21,7 @@

    参数

    root
    {{ domxref("NodeIterator") }}遍历起始处的根节点。
    whatToShow {{ optional_inline() }}
    -
    是一个可选的无符号长整型(unsigned long), 是由节点过滤器(NodeFilter)中的常量属性定义的位掩码。这是筛选特定类型节点的便捷方式。其默认值是 0xFFFFFFFF ,代表 SHOW_ALL 常量。 +
    是一个可选的无符号长整型(unsigned long),是由节点过滤器(NodeFilter)中的常量属性定义的位掩码。这是筛选特定类型节点的便捷方式。其默认值是 0xFFFFFFFF ,代表 SHOW_ALL 常量。
    @@ -72,7 +72,7 @@

    参数

    - + @@ -82,7 +82,7 @@

    参数

    - + diff --git a/files/zh-cn/web/api/document/createprocessinginstruction/index.html b/files/zh-cn/web/api/document/createprocessinginstruction/index.html index f3b695f182ed51..0c7243c2db3aa4 100644 --- a/files/zh-cn/web/api/document/createprocessinginstruction/index.html +++ b/files/zh-cn/web/api/document/createprocessinginstruction/index.html @@ -38,7 +38,7 @@

    实例

    docu.insertBefore(pi, docu.firstChild); alert(new XMLSerializer().serializeToString(docu)); -// 弹出框内容: <?xml-stylesheet href="mycss.css" type="text/css"?><xml/> +// 弹出框内容:<?xml-stylesheet href="mycss.css" type="text/css"?><xml/>

    规范

    diff --git a/files/zh-cn/web/api/document/createtreewalker/index.html b/files/zh-cn/web/api/document/createtreewalker/index.html index 164ca554ceb04d..644b0764adfd04 100644 --- a/files/zh-cn/web/api/document/createtreewalker/index.html +++ b/files/zh-cn/web/api/document/createtreewalker/index.html @@ -84,7 +84,7 @@

    参数

    - + diff --git a/files/zh-cn/web/api/document/domain/index.html b/files/zh-cn/web/api/document/domain/index.html index f9554e60803d03..ef1200fe28c706 100644 --- a/files/zh-cn/web/api/document/domain/index.html +++ b/files/zh-cn/web/api/document/domain/index.html @@ -45,13 +45,13 @@

    例子

    获取域名

    -

    对于 URI http://developer.mozilla.org/en-US/docs/Web,此示例将 currentDomain 设置为字符串“ developer.mozilla.org”。

    +

    对于 URI http://developer.mozilla.org/en-US/docs/Web,此示例将 currentDomain 设置为字符串“developer.mozilla.org”。

    var currentDomain = document.domain;

    关闭窗口

    -

    如果文档(例如 www.example.xxx/good.html)的域为“ www.example.xxx”,则本示例将尝试关闭窗口。

    +

    如果文档(例如 www.example.xxx/good.html)的域为“www.example.xxx”,则本示例将尝试关闭窗口。

    var badDomain = "www.example.xxx";
     
    diff --git a/files/zh-cn/web/api/document/dragenter_event/index.html b/files/zh-cn/web/api/document/dragenter_event/index.html
    index e1027c8b56a583..606b056c0ac684 100644
    --- a/files/zh-cn/web/api/document/dragenter_event/index.html
    +++ b/files/zh-cn/web/api/document/dragenter_event/index.html
    @@ -118,7 +118,7 @@ 

    属性

    - + diff --git a/files/zh-cn/web/api/document/evaluate/index.html b/files/zh-cn/web/api/document/evaluate/index.html index 8be4642744b59c..8be43388409ac4 100644 --- a/files/zh-cn/web/api/document/evaluate/index.html +++ b/files/zh-cn/web/api/document/evaluate/index.html @@ -45,7 +45,7 @@

    示例

    alert(alertText); // 显示所有 h2 节点的文本 -

    注意,在上述例子中,最好写更冗长的 XPath,而不是常用的简写,比如 //h2。 通常,像上述例子所示,更具体的 XPath 选择器会得到显著的性能提升,特别是在非常大的文档中。这是因为查询计算不会将时间浪费在查看不需要的节点上。使用 // 通常很慢,这是因为它要从根节点和所有子节点中查找所有可能匹配的节点。

    +

    注意,在上述例子中,最好写更冗长的 XPath,而不是常用的简写,比如 //h2。通常,像上述例子所示,更具体的 XPath 选择器会得到显著的性能提升,特别是在非常大的文档中。这是因为查询计算不会将时间浪费在查看不需要的节点上。使用 // 通常很慢,这是因为它要从根节点和所有子节点中查找所有可能匹配的节点。

    通过谨慎使用上下文参数能得到进一步的优化。比如,如果你知道你要查找的内容在 body 标签的某处,你可以这样做:

    diff --git a/files/zh-cn/web/api/document/execcommand/index.html b/files/zh-cn/web/api/document/execcommand/index.html index f373fb8a6dda33..9fba33b101a7e8 100644 --- a/files/zh-cn/web/api/document/execcommand/index.html +++ b/files/zh-cn/web/api/document/execcommand/index.html @@ -33,7 +33,7 @@

    参数

    aCommandName
    一个 {{domxref("DOMString")}} ,命令的名称。可用命令列表请参阅 命令
    aShowDefaultUI
    -
    一个 {{jsxref("Boolean")}}, 是否展示用户界面,一般为 false。Mozilla 没有实现。
    +
    一个 {{jsxref("Boolean")}},是否展示用户界面,一般为 false。Mozilla 没有实现。
    aValueArgument
    一些命令(例如 insertImage)需要额外的参数(insertImage 需要提供插入 image 的 url),默认为 null。
    @@ -74,17 +74,17 @@

    命令

    foreColor
    在插入点或者选中文字部分修改字体颜色。需要提供一个颜色值字符串作为参数。
    formatBlock
    -
    添加一个 HTML 块式标签在包含当前选择的行,如果已经存在了,更换包含该行的块元素 (在 Firefox 中,BLOCKQUOTE 是一个例外 -它将包含任何包含块元素). 需要提供一个标签名称字符串作为参数。几乎所有的块样式标签都可以使用 (例如. "H1", "P", "DL", "BLOCKQUOTE"). (IE 浏览器仅仅支持标题标签 H1 - H6, ADDRESS,和 PRE,使用时还必须包含标签分隔符 < >, 例如 "<H1>".)
    +
    添加一个 HTML 块式标签在包含当前选择的行,如果已经存在了,更换包含该行的块元素 (在 Firefox 中,BLOCKQUOTE 是一个例外 -它将包含任何包含块元素). 需要提供一个标签名称字符串作为参数。几乎所有的块样式标签都可以使用 (例如。"H1", "P", "DL", "BLOCKQUOTE"). (IE 浏览器仅仅支持标题标签 H1 - H6, ADDRESS,和 PRE,使用时还必须包含标签分隔符 < >, 例如 "<H1>".)
    forwardDelete
    -
    删除光标所在位置的字符。 和按下删除键一样。
    +
    删除光标所在位置的字符。和按下删除键一样。
    heading
    -
    添加一个标题标签在光标处或者所选文字上。 需要提供标签名称字符串作为参数 (例如. "H1", "H6"). (IE 和 Safari 不支持)
    +
    添加一个标题标签在光标处或者所选文字上。需要提供标签名称字符串作为参数 (例如。"H1", "H6"). (IE 和 Safari 不支持)
    hiliteColor
    更改选择或插入点的背景颜色。需要一个颜色值字符串作为值参数传递。 UseCSS 必须开启此功能。(IE 浏览器不支持)
    increaseFontSize
    在选择或插入点周围添加一个 BIG 标签。(IE 浏览器不支持)
    indent
    -
    缩进选择或插入点所在的行, 在 Firefox 中,如果选择多行,但是这些行存在不同级别的缩进,只有缩进最少的行被缩进。
    +
    缩进选择或插入点所在的行,在 Firefox 中,如果选择多行,但是这些行存在不同级别的缩进,只有缩进最少的行被缩进。
    insertBrOnReturn
    控制当按下 Enter 键时,是插入 br 标签还是把当前块元素变成两个。(IE 浏览器不支持)
    insertHorizontalRule
    @@ -134,10 +134,10 @@

    命令

    unlink
    去除所选的锚链接的<a>标签
    useCSS {{Deprecated_inline}}
    -
    切换使用 HTML tags 还是 CSS 来生成标记。要求一个布尔值 true/false 作为参数。注:这个属性是逻辑上的倒退 (例如. use false to use CSS, true to use HTML).(IE 不支持)
    +
    切换使用 HTML tags 还是 CSS 来生成标记。要求一个布尔值 true/false 作为参数。注:这个属性是逻辑上的倒退 (例如。use false to use CSS, true to use HTML).(IE 不支持)
    该属性已经废弃,使用 styleWithCSS 代替。
    styleWithCSS
    -
    用这个取代 useCSS 命令。 参数如预期的那样工作,i.e. true modifies/generates 风格的标记属性,false 生成格式化元素。
    +
    用这个取代 useCSS 命令。参数如预期的那样工作,i.e. true modifies/generates 风格的标记属性,false 生成格式化元素。
    AutoUrlDetect
    更改浏览器自动链接行为(仅 IE 浏览器支持)
    diff --git a/files/zh-cn/web/api/document/fullscreenenabled/index.html b/files/zh-cn/web/api/document/fullscreenenabled/index.html index 3edff481ff8581..58cf26ea096dea 100644 --- a/files/zh-cn/web/api/document/fullscreenenabled/index.html +++ b/files/zh-cn/web/api/document/fullscreenenabled/index.html @@ -6,7 +6,7 @@ ---

    {{ ApiRef() }}

    概述

    -

    返回一个布尔值,表明浏览器是否支持全屏模式。全屏模式只在那些不包含窗口化的插件的页面中可用.对于一个{{ HTMLElement("iframe") }}元素中的页面,则它必需拥有{{ HTMLAttrXRef("mozallowfullscreen", "iframe") }}属性。

    +

    返回一个布尔值,表明浏览器是否支持全屏模式。全屏模式只在那些不包含窗口化的插件的页面中可用。对于一个{{ HTMLElement("iframe") }}元素中的页面,则它必需拥有{{ HTMLAttrXRef("mozallowfullscreen", "iframe") }}属性。

    语法

    var isFullScreenAvailable = document.mozFullScreenEnabled;
     
    diff --git a/files/zh-cn/web/api/document/getelementbyid/index.html b/files/zh-cn/web/api/document/getelementbyid/index.html index 5ab18853e95428..f3d58b933153fb 100644 --- a/files/zh-cn/web/api/document/getelementbyid/index.html +++ b/files/zh-cn/web/api/document/getelementbyid/index.html @@ -61,9 +61,9 @@

    执行结果

    注意

    -

    对 “Id” 的拼写一定要正确。如果大小写不匹配,无论看起来多么合情合理,getElementByID() 都是不合理的且永远都不会工作的。

    +

    对“Id”的拼写一定要正确。如果大小写不匹配,无论看起来多么合情合理,getElementByID() 都是不合理的且永远都不会工作的。

    -

    不同于其他 Element 查找方法(如{{domxref("Document.querySelector()")}} 以及 {{domxref("Document.querySelectorAll()")}}),getElementById() 只有在作为 document 的方法时才能起作用,而在 DOM 中的其他元素下无法生效。这是因为 ID 值在整个网页中必须保持唯一。因此没有必要为这个方法创建所谓的 “局部” 版本。

    +

    不同于其他 Element 查找方法(如{{domxref("Document.querySelector()")}} 以及 {{domxref("Document.querySelectorAll()")}}),getElementById() 只有在作为 document 的方法时才能起作用,而在 DOM 中的其他元素下无法生效。这是因为 ID 值在整个网页中必须保持唯一。因此没有必要为这个方法创建所谓的“局部”版本。

    示例

    @@ -98,7 +98,7 @@

    示例

    var el = document.getElementById('testqq'); // el 是个 null -

    非 HTML 文档(Non-HTML documents)。 DOM 的实现必须说明哪个属性是 ID 类型。只有 DTD 定义了'id'是 ID 属性时’id‘才会被认为是 ID 属性。在 XHTMLXUL或者其他文档中,'id'通常被定义为 ID 类型的属性。不知道哪个属性是 ID 类型的实现中,这会返回 null 结果。

    +

    非 HTML 文档(Non-HTML documents)。DOM 的实现必须说明哪个属性是 ID 类型。只有 DTD 定义了'id'是 ID 属性时’id‘才会被认为是 ID 属性。在 XHTMLXUL或者其他文档中,'id'通常被定义为 ID 类型的属性。不知道哪个属性是 ID 类型的实现中,这会返回 null 结果。

    规范

    diff --git a/files/zh-cn/web/api/document/getelementsbyname/index.html b/files/zh-cn/web/api/document/getelementsbyname/index.html index 709edbedf48fe1..91fdb1f27bfb84 100644 --- a/files/zh-cn/web/api/document/getelementsbyname/index.html +++ b/files/zh-cn/web/api/document/getelementsbyname/index.html @@ -50,7 +50,7 @@

    注释

    该方法返回一个 live 的 {{domxref("NodeList")}}   集合,这个集合包含 {{domxref("element.name","name")}} 属性为指定值的所有元素,例如{{htmlelement("meta")}} 、{{htmlelement("object")}},甚至那些不支持 {{domxref("element.name","name")}} 属性但是添加了 {{domxref("element.name","name")}} 自定义属性的元素也包含其中。

    -

    getElementsByName  在不同的浏览器其中工作方式不同。在 IE 和 Opera 中, getElementsByName()  方法还会返回那些 {{domxref("element.id","id")}} 为指定值的元素。所以你要小心使用该方法,最好不要为元素的 {{domxref("element.name","name")}} 和 {{domxref("element.id","id")}} 赋予相同的值。 

    +

    getElementsByName  在不同的浏览器其中工作方式不同。在 IE 和 Opera 中,getElementsByName()  方法还会返回那些 {{domxref("element.id","id")}} 为指定值的元素。所以你要小心使用该方法,最好不要为元素的 {{domxref("element.name","name")}} 和 {{domxref("element.id","id")}} 赋予相同的值。 

    diff --git a/files/zh-cn/web/api/document/getelementsbytagnamens/index.html b/files/zh-cn/web/api/document/getelementsbytagnamens/index.html index d96e1cc5a52895..5355e2982c686e 100644 --- a/files/zh-cn/web/api/document/getelementsbytagnamens/index.html +++ b/files/zh-cn/web/api/document/getelementsbytagnamens/index.html @@ -24,7 +24,7 @@

    语法

  • name 是所要查询的元素的名称。其中特殊字符 "*" 代表所有元素 (参考 element.localName)。
  • -
    注意:在 W3C 文档中,elements是一个 NodeList,而该方法在 Gecko 内核的浏览器和 IE 中返回的是 HTML 集合HTMLCollection. Opera 返回的也是一个 NodeList,但通过 namedItem方法 , 使得它类似于一个HTMLCollection . 截止 2012 年 1 月,只有 WebKit 内核的浏览器返回的值是一个纯 NodeList. 详情请参考 bug 14869 .
    +
    注意:在 W3C 文档中,elements是一个 NodeList,而该方法在 Gecko 内核的浏览器和 IE 中返回的是 HTML 集合HTMLCollection. Opera 返回的也是一个 NodeList,但通过 namedItem方法,使得它类似于一个HTMLCollection . 截止 2012 年 1 月,只有 WebKit 内核的浏览器返回的值是一个纯 NodeList. 详情请参考 bug 14869 .

    示例

    diff --git a/files/zh-cn/web/api/document/hasfocus/index.html b/files/zh-cn/web/api/document/hasfocus/index.html index 17a439ded998f8..7fa2d83b88d77d 100644 --- a/files/zh-cn/web/api/document/hasfocus/index.html +++ b/files/zh-cn/web/api/document/hasfocus/index.html @@ -15,7 +15,7 @@

    概述

    Document.hasFocus() 方法返回一个 {{jsxref("Boolean")}},表明当前文档或者当前文档内的节点是否获得了焦点。该方法可以用来判断当前文档中的活动元素是否获得了焦点。

    -
    当查看一个文档时,当前文档中获得焦点的元素一定是当前文档的活动元素,但一个文档中的活动元素不一定获得了焦点.。例如, 一个在后台的窗口中的活动元素一定没有获得焦点。
    +
    当查看一个文档时,当前文档中获得焦点的元素一定是当前文档的活动元素,但一个文档中的活动元素不一定获得了焦点.。例如,一个在后台的窗口中的活动元素一定没有获得焦点。

    语法

    diff --git a/files/zh-cn/web/api/document/head/index.html b/files/zh-cn/web/api/document/head/index.html index d837f696f5fe8f..36b814c57cd29d 100644 --- a/files/zh-cn/web/api/document/head/index.html +++ b/files/zh-cn/web/api/document/head/index.html @@ -10,7 +10,7 @@

    语法

    var objRef = document.head;
     

    示例

    -
    // HTML 部分源码为: <head id="my-document-head">
    +
    // HTML 部分源码为:<head id="my-document-head">
     var aHead = document.head;
     
     alert(aHead.id); // "my-document-head";
    diff --git a/files/zh-cn/web/api/document/images/index.html b/files/zh-cn/web/api/document/images/index.html
    index a20696ecb77f72..15d570fc6a3b31 100644
    --- a/files/zh-cn/web/api/document/images/index.html
    +++ b/files/zh-cn/web/api/document/images/index.html
    @@ -13,7 +13,7 @@ 

    语法

    -

    一个 {{domxref("HTMLCollection")}},提供了包含在该文档中的所有 images 元素实时的列表。 集合中的每条代表了一个单 image 元素的{{domxref("HTMLImageElement")}}

    +

    一个 {{domxref("HTMLCollection")}},提供了包含在该文档中的所有 images 元素实时的列表。集合中的每条代表了一个单 image 元素的{{domxref("HTMLImageElement")}}

    备注

    diff --git a/files/zh-cn/web/api/document/implementation/index.html b/files/zh-cn/web/api/document/implementation/index.html index 0d5cf3c571ab3d..9106f993d4a523 100644 --- a/files/zh-cn/web/api/document/implementation/index.html +++ b/files/zh-cn/web/api/document/implementation/index.html @@ -29,7 +29,7 @@

    示例

    说明

    -

    W3C 的 DOM1 级建议值规定了一种检测浏览器对某个DOM模型是否支持的方法——hasFeature 方法(请参考上边的例子以及这篇文章 What does your user agent claim to support?)。如果它可用的话,那么 DOMImplementation 接口的其他方法就可以为操作文档以外的内容提供一些服务了。例如,DOMImplementation 接口包含一个 createDocumentType 方法,它可以为实例管理的文档创建对应的 DTD 文档定义。

    +

    W3C 的 DOM1 级建议值规定了一种检测浏览器对某个 DOM 模型是否支持的方法——hasFeature 方法(请参考上边的例子以及这篇文章 What does your user agent claim to support?)。如果它可用的话,那么 DOMImplementation 接口的其他方法就可以为操作文档以外的内容提供一些服务了。例如,DOMImplementation 接口包含一个 createDocumentType 方法,它可以为实例管理的文档创建对应的 DTD 文档定义。

    方法

    NodeFilter.SHOW_ENTITY {{deprecated_inline}} 32显示 {{ domxref("Entity") }} 节点。 这仅在创建以{{ domxref("Entity") }}实体节点为根节点的{{ domxref("TreeWalker") }}时有意义;在这种情况下,这意味着该实体节点会出现在迭代或遍历的第一位。因为实体节点不会是其他节点的子代,遍历文档树时,实体节点不会出现。显示 {{ domxref("Entity") }} 节点。这仅在创建以{{ domxref("Entity") }}实体节点为根节点的{{ domxref("TreeWalker") }}时有意义;在这种情况下,这意味着该实体节点会出现在迭代或遍历的第一位。因为实体节点不会是其他节点的子代,遍历文档树时,实体节点不会出现。
    NodeFilter.SHOW_ENTITY_REFERENCE {{deprecated_inline}}
    NodeFilter.SHOW_NOTATION {{deprecated_inline}} 2048显示 {{ domxref("Entity") }} 节点。 这仅在创建以{{ domxref("Notation") }}符号节点为根节点的{{ domxref("TreeWalker") }}时有意义;在这种情况下,这意味着该符号节点会出现在迭代或遍历的第一位。因为符号节点不会是其他节点的子代,遍历文档树时,符号节点不会出现。显示 {{ domxref("Entity") }} 节点。这仅在创建以{{ domxref("Notation") }}符号节点为根节点的{{ domxref("TreeWalker") }}时有意义;在这种情况下,这意味着该符号节点会出现在迭代或遍历的第一位。因为符号节点不会是其他节点的子代,遍历文档树时,符号节点不会出现。
    NodeFilter.SHOW_PROCESSING_INSTRUCTION
    NodeFilter.SHOW_NOTATION {{deprecated_inline}} 2048显示符号{{ domxref("Notation") }} 节点。 This is meaningful only when creating a {{ domxref("TreeWalker") }} with a {{ domxref("Notation") }} node as its root; in this case, it means that the {{ domxref("Notation") }} node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.显示符号{{ domxref("Notation") }} 节点。This is meaningful only when creating a {{ domxref("TreeWalker") }} with a {{ domxref("Notation") }} node as its root; in this case, it means that the {{ domxref("Notation") }} node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.
    NodeFilter.SHOW_PROCESSING_INSTRUCTION
    button {{readonlyInline}} unsigned short鼠标事件触发时按下的按钮号:左键= 0,中键= 1(如果存在),右键= 2。 对于配置为左手使用的鼠标,其中按钮操作反转,则值从右向左读取。鼠标事件触发时按下的按钮号:左键= 0,中键= 1(如果存在),右键= 2。对于配置为左手使用的鼠标,其中按钮操作反转,则值从右向左读取。
    buttons {{readonlyInline}}
    @@ -75,7 +75,7 @@

    浏览器兼容性

    {{Compat}} -

    Gecko引擎的特别说明

    +

    Gecko 引擎的特别说明

    • 从 Gecko 19.0 {{geckoRelease("19.0")}}开始{{domxref("DOMImplementation.hasFeature","hasFeature")}}方法总是返回 true。
    • diff --git a/files/zh-cn/web/api/document/index.html b/files/zh-cn/web/api/document/index.html index 4155c4b60b3ac5..f1084a0309d9dc 100644 --- a/files/zh-cn/web/api/document/index.html +++ b/files/zh-cn/web/api/document/index.html @@ -11,7 +11,7 @@ ---
      {{APIRef("DOM")}}
      -

      Document 接口表示任何在浏览器中载入的网页,并作为网页内容的入口,也就是DOM 树。DOM 树包含了像 {{HTMLElement("body")}} 、{{HTMLElement("table")}} 这样的元素,以及大量其他元素。它向网页文档本身提供了全局操作功能,能解决如何获取页面的 URL ,如何在文档中创建一个新的元素这样的问题。

      +

      Document 接口表示任何在浏览器中载入的网页,并作为网页内容的入口,也就是DOM 树。DOM 树包含了像 {{HTMLElement("body")}} 、{{HTMLElement("table")}} 这样的元素,以及大量其他元素。它向网页文档本身提供了全局操作功能,能解决如何获取页面的 URL,如何在文档中创建一个新的元素这样的问题。

      {{inheritanceDiagram}}

      diff --git a/files/zh-cn/web/api/document/lastmodified/index.html b/files/zh-cn/web/api/document/lastmodified/index.html index df951d43da215b..861c6ea96faebb 100644 --- a/files/zh-cn/web/api/document/lastmodified/index.html +++ b/files/zh-cn/web/api/document/lastmodified/index.html @@ -17,7 +17,7 @@

      语法

      例子

      dump(document.lastModified);
      -// 返回: Tuesday, July 10, 2001 10:19:42
      +// 返回:Tuesday, July 10, 2001 10:19:42
       

      备注

      diff --git a/files/zh-cn/web/api/document/queryselector/index.html b/files/zh-cn/web/api/document/queryselector/index.html index d5906f8633af96..32dccc015b52e2 100644 --- a/files/zh-cn/web/api/document/queryselector/index.html +++ b/files/zh-cn/web/api/document/queryselector/index.html @@ -25,11 +25,11 @@

      参数

      selectors
      -
      包含一个或多个要匹配的选择器的 DOM 字符串{{domxref("DOMString")}}。 该字符串必须是有效的 CSS 选择器字符串;如果不是,则引发SYNTAX_ERR异常。请参阅使用选择器定位 DOM 元素以获取有关选择器以及如何管理它们的更多信息。
      +
      包含一个或多个要匹配的选择器的 DOM 字符串{{domxref("DOMString")}}。该字符串必须是有效的 CSS 选择器字符串;如果不是,则引发SYNTAX_ERR异常。请参阅使用选择器定位 DOM 元素以获取有关选择器以及如何管理它们的更多信息。
      -

      提示:必须使用反斜杠字符转义不属于标准 CSS 语法的字符。 由于 JavaScript 也使用退格转义,因此在使用这些字符编写字符串文字时必须特别小心。 有关详细信息,请参阅转义特殊字符

      +

      提示:必须使用反斜杠字符转义不属于标准 CSS 语法的字符。由于 JavaScript 也使用退格转义,因此在使用这些字符编写字符串文字时必须特别小心。有关详细信息,请参阅转义特殊字符

      返回值

      diff --git a/files/zh-cn/web/api/document/queryselectorall/index.html b/files/zh-cn/web/api/document/queryselectorall/index.html index 0574f0f1f247ef..462fa5fd69aadc 100644 --- a/files/zh-cn/web/api/document/queryselectorall/index.html +++ b/files/zh-cn/web/api/document/queryselectorall/index.html @@ -39,7 +39,7 @@

      Parameters

      -

      注意: 必须使用反斜杠字符转义不属于标准 CSS 语法的字符。 由于 JavaScript 也使用反斜杠转义,因此在使用这些字符编写字符串文字时必须特别小心。有关详细信息,请参阅转义特殊字符

      +

      注意: 必须使用反斜杠字符转义不属于标准 CSS 语法的字符。由于 JavaScript 也使用反斜杠转义,因此在使用这些字符编写字符串文字时必须特别小心。有关详细信息,请参阅转义特殊字符

      返回值

      @@ -86,9 +86,9 @@

      获取匹配列表

      访问匹配项

      -

      一旦返回匹配元素的{{domxref("NodeList")}},就可以像任何数组一样检查它。 如果数组为空(即,其length属性为 0),则找不到匹配项。

      +

      一旦返回匹配元素的{{domxref("NodeList")}},就可以像任何数组一样检查它。如果数组为空(即,其length属性为 0),则找不到匹配项。

      -

      否则,您只需使用标准数组方法来访问列表的内容。 您可以使用任何常见的循环语句,例如:

      +

      否则,您只需使用标准数组方法来访问列表的内容。您可以使用任何常见的循环语句,例如:

      var highlightedItems = userList.querySelectorAll(".highlighted");
       
      @@ -118,7 +118,7 @@ 

      JavaScript

      inner.length; // 1, not 0!
      -

      在这个例子中,当在<div>上下文中选择带有"select"类的".outer .inner"时,仍然会找到类".inner"的元素,即使.outer不是基类的后代 执行搜索的元素(".select")。 默认情况下,querySelectorAll()仅验证选择器中的最后一个元素是否在搜索范围内。

      +

      在这个例子中,当在<div>上下文中选择带有"select"类的".outer .inner"时,仍然会找到类".inner"的元素,即使.outer不是基类的后代 执行搜索的元素(".select")。默认情况下,querySelectorAll()仅验证选择器中的最后一个元素是否在搜索范围内。

      {{cssxref(":scope")}} 伪类符合预期的行为,只匹配基本元素后代的选择器:

      diff --git a/files/zh-cn/web/api/document/scroll_event/index.html b/files/zh-cn/web/api/document/scroll_event/index.html index c307ad593bfe7d..f43fc61da9c5b9 100644 --- a/files/zh-cn/web/api/document/scroll_event/index.html +++ b/files/zh-cn/web/api/document/scroll_event/index.html @@ -50,7 +50,7 @@

      Scroll 事件节流

      然而需要注意的是,输入事件和动画帧常常以差不多的频率被触发,因此以下优化常常不必要。这个例子使用 requestAnimationFrame 优化 scroll 事件。

      -
      // 参见: http://www.html5rocks.com/en/tutorials/speed/animations/
      +
      // 参见:http://www.html5rocks.com/en/tutorials/speed/animations/
       
       let last_known_scroll_position = 0;
       let ticking = false;
      diff --git a/files/zh-cn/web/api/document/scrollingelement/index.html b/files/zh-cn/web/api/document/scrollingelement/index.html
      index 1d8e6ad6b9af83..3c896f5b2bfb1c 100644
      --- a/files/zh-cn/web/api/document/scrollingelement/index.html
      +++ b/files/zh-cn/web/api/document/scrollingelement/index.html
      @@ -7,7 +7,7 @@
       
       

      scrollingElement ( {{domxref("Document")}} 的只读属性)返回滚动文档的 {{domxref("Element")}} 对象的引用。 在标准模式下,这是文档的根元素, {{domxref("document.documentElement")}}.

      -

      当在怪异模式下, scrollingElement 属性返回 HTML body 元素(若不存在返回 null )。

      +

      当在怪异模式下, scrollingElement 属性返回 HTML body 元素(若不存在返回 null)。

      语法

      diff --git a/files/zh-cn/web/api/document/selectedstylesheetset/index.html b/files/zh-cn/web/api/document/selectedstylesheetset/index.html index 828de3d2f57ae5..5954e927d449f1 100644 --- a/files/zh-cn/web/api/document/selectedstylesheetset/index.html +++ b/files/zh-cn/web/api/document/selectedstylesheetset/index.html @@ -15,7 +15,7 @@

      语法

      -

      返回时,currentStyleSheetSet 表示当前使用的样式表集合的名称。 你也可以使用这个属性设置当前样式表集。

      +

      返回时,currentStyleSheetSet 表示当前使用的样式表集合的名称。你也可以使用这个属性设置当前样式表集。

      设置这个属性的值相当于用currentStyleSheetSet 的值调用 {{ domxref("document.enableStyleSheetsForSet()") }},然后将lastStyleSheetSet 的值设置为该值。

      diff --git a/files/zh-cn/web/api/document/timeline/index.html b/files/zh-cn/web/api/document/timeline/index.html index 40950be56e3442..62db9cd5f734b6 100644 --- a/files/zh-cn/web/api/document/timeline/index.html +++ b/files/zh-cn/web/api/document/timeline/index.html @@ -12,11 +12,11 @@ ---
      {{ SeeCompatTable() }}{{ APIRef("Web Animations") }}
      -

      {{domxref("Document")}} 接口的 timeline 只读属性表示当前文档的默认时间轴。 此时间轴是 {{domxref("DocumentTimeline")}} 的一个特殊实例,它会在网页加载时自动创建。

      +

      {{domxref("Document")}} 接口的 timeline 只读属性表示当前文档的默认时间轴。此时间轴是 {{domxref("DocumentTimeline")}} 的一个特殊实例,它会在网页加载时自动创建。

      此时间轴对于每个文档(document)来说都是唯一的,并在文档的生命周期中保持不变,包括调用 {{domxref("Document.open()")}}。

      -

      该时间线的时间值被计算为与全局时钟的固定偏移,使得零时间对应于{{domxref("PerformanceTiming.navigationStart", "navigationStart")}}时刻加上称为原始时间的带符号的 delta 。 在建立导航开始时刻之前,文档时间线是不活动的。

      +

      该时间线的时间值被计算为与全局时钟的固定偏移,使得零时间对应于{{domxref("PerformanceTiming.navigationStart", "navigationStart")}}时刻加上称为原始时间的带符号的 delta。在建立导航开始时刻之前,文档时间线是不活动的。

      注意:与非活动文档相关联的文档时间轴也被视为是不活动的

      diff --git a/files/zh-cn/web/api/document/tooltipnode/index.html b/files/zh-cn/web/api/document/tooltipnode/index.html index 8e1aa938a53e88..6a342ab3d13c3a 100644 --- a/files/zh-cn/web/api/document/tooltipnode/index.html +++ b/files/zh-cn/web/api/document/tooltipnode/index.html @@ -10,4 +10,4 @@

      语法

      document.tooltipNode;
       

      规范

      -

      只能在 XUL 中使用。不属于任何规范.定义在{{ Source("dom/public/idl/xul/nsIDOMXULDocument.idl#59", "nsIDOMXULDocument.idl") }}.

      +

      只能在 XUL 中使用。不属于任何规范。定义在{{ Source("dom/public/idl/xul/nsIDOMXULDocument.idl#59", "nsIDOMXULDocument.idl") }}.

      diff --git a/files/zh-cn/web/api/document/visibilitystate/index.html b/files/zh-cn/web/api/document/visibilitystate/index.html index 894f2a5cb80bbc..8930c59eabce86 100644 --- a/files/zh-cn/web/api/document/visibilitystate/index.html +++ b/files/zh-cn/web/api/document/visibilitystate/index.html @@ -10,7 +10,7 @@
      • 'visible' : 此时页面内容至少是部分可见. 即此页面在前景标签页中,并且窗口没有最小化。
      • 'hidden' : 此时页面对用户不可见。即文档处于背景标签页或者窗口处于最小化状态,或者操作系统正处于 '锁屏状态' .
      • -
      • 'prerender' : 页面此时正在渲染中,因此是不可见的 (considered hidden for purposes of document.hidden). 文档只能从此状态开始,永远不能从其他值变为此状态。注意: 浏览器支持是可选的。
      • +
      • 'prerender' : 页面此时正在渲染中,因此是不可见的 (considered hidden for purposes of document.hidden). 文档只能从此状态开始,永远不能从其他值变为此状态。注意:浏览器支持是可选的。

      当此属性的值改变时,会递交 {{event('visibilitychange')}} 事件给{{domxref("Document")}}.

      diff --git a/files/zh-cn/web/api/document_object_model/examples/index.html b/files/zh-cn/web/api/document_object_model/examples/index.html index 70cd538f99a408..167c261842d8ea 100644 --- a/files/zh-cn/web/api/document_object_model/examples/index.html +++ b/files/zh-cn/web/api/document_object_model/examples/index.html @@ -6,7 +6,7 @@ - DOM 参考 translation_of: Web/API/Document_Object_Model/Examples --- -

      本章介绍提供了一些长例子来介绍如何使用 DOM 进行 Web 以及 XML 开发。在可能的情况下,例子只使用普通 API ,技巧以及 JavaScript 模式来操作文档对象。

      +

      本章介绍提供了一些长例子来介绍如何使用 DOM 进行 Web 以及 XML 开发。在可能的情况下,例子只使用普通 API,技巧以及 JavaScript 模式来操作文档对象。

      示例 1: 高度和宽度

      diff --git a/files/zh-cn/web/api/document_object_model/introduction/index.html b/files/zh-cn/web/api/document_object_model/introduction/index.html index d165da7cab2cf6..fc567f1a8bdfb5 100644 --- a/files/zh-cn/web/api/document_object_model/introduction/index.html +++ b/files/zh-cn/web/api/document_object_model/introduction/index.html @@ -20,7 +20,7 @@

      什么是 DOM?

      文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将 web 页面和脚本或程序语言连接起来。

      -

      一个 web 页面是一个文档。这个文档可以在浏览器窗口或作为 HTML 源码显示出来。但上述两个情况中都是同一份文档。文档对象模型(DOM)提供了对同一份文档的另一种表现,存储和操作的方式。 DOM 是 web 页面的完全的面向对象表述,它能够使用如 JavaScript 等脚本语言进行修改。

      +

      一个 web 页面是一个文档。这个文档可以在浏览器窗口或作为 HTML 源码显示出来。但上述两个情况中都是同一份文档。文档对象模型(DOM)提供了对同一份文档的另一种表现,存储和操作的方式。DOM 是 web 页面的完全的面向对象表述,它能够使用如 JavaScript 等脚本语言进行修改。

       W3C DOM 和WHATWG DOM标准在绝大多数现代浏览器中都有对 DOM 的基本实现。许多浏览器提供了对 W3C 标准的扩展,所以在使用时必须注意,文档可能会在多种浏览器上使用不同的 DOM 来访问。

      @@ -36,13 +36,13 @@

      什么是 DOM?

      DOM 和 JavaScript

      -

      上面简短的示例和这个参考文档中几乎所有的示例一样,都使用了JavaScript。也就是说,它虽然是用 JavaScript 编写的, 却可以通过 DOM 来访问文档和其中的元素。DOM 并不是一个编程语言,但如果没有 DOM, JavaScript 语言也不会有任何网页,XML 页面以及涉及到的元素的概念或模型。在文档中的每个元素— 包括整个文档,文档头部, 文档中的表格,表头,表格中的文本 — 都是文档所属于的文档对象模型(DOM)的一部分,因此它们可以使用 DOM 和一个脚本语言如 JavaScript,来访问和处理。

      +

      上面简短的示例和这个参考文档中几乎所有的示例一样,都使用了JavaScript。也就是说,它虽然是用 JavaScript 编写的,却可以通过 DOM 来访问文档和其中的元素。DOM 并不是一个编程语言,但如果没有 DOM,JavaScript 语言也不会有任何网页,XML 页面以及涉及到的元素的概念或模型。在文档中的每个元素— 包括整个文档,文档头部,文档中的表格,表头,表格中的文本 — 都是文档所属于的文档对象模型(DOM)的一部分,因此它们可以使用 DOM 和一个脚本语言如 JavaScript,来访问和处理。

      开始的时候,JavaScript 和 DOM 是交织在一起的,但它们最终演变成了两个独立的实体。JavaScript 可以访问和操作存储在 DOM 中的内容,因此我们可以写成这个近似的等式:

      API (web 或 XML 页面) = DOM + JS (脚本语言)

      -

      DOM 被设计成与特定编程语言相独立,使文档的结构化表述可以通过单一,一致的 API 获得。尽管我们在本参考文档中会专注于使用 JavaScript, 但 DOM 也可以使用其他的语言来实现, 以 Python 为例,代码如下:

      +

      DOM 被设计成与特定编程语言相独立,使文档的结构化表述可以通过单一,一致的 API 获得。尽管我们在本参考文档中会专注于使用 JavaScript,但 DOM 也可以使用其他的语言来实现,以 Python 为例,代码如下:

      # Python DOM example
       import xml.dom.minidom as m
      @@ -55,7 +55,7 @@ 

      DOM 和 JavaScript

      如何访问 DOM?

      -

      在使用 DOM 时,您不需要做任何其他特殊的操作。不同的浏览器都有对 DOM 不同的实现, 这些实现对当前的 DOM 标准而言,都会呈现出不同程度的一致性,每个 web 浏览器都会使用一些文档对象模型,从而使页面可以被脚本语言访问。

      +

      在使用 DOM 时,您不需要做任何其他特殊的操作。不同的浏览器都有对 DOM 不同的实现,这些实现对当前的 DOM 标准而言,都会呈现出不同程度的一致性,每个 web 浏览器都会使用一些文档对象模型,从而使页面可以被脚本语言访问。

      当您在创建一个脚本时 - 无论是使用内嵌 <script>元素或者使用在 web 页面脚本加载的方法— 您都可以使用 document或 window 元素的 API 来操作文档本身或获取文档的子类(web 页面中的各种元素)。

      @@ -64,7 +64,7 @@

      如何访
      <body onload="window.alert('welcome to my home page!');">
       
      -

      除了定义 JavaScript 的 <script> 元素外, 当文档被装载(以及当整个 DOM 可以被有效使用时),JavaScript 可以设定一个函数来运行。下面的函数会创建一个新的 H1 元素,为元素添加文本,并将 H1 添加在文档树中。 

      +

      除了定义 JavaScript 的 <script> 元素外,当文档被装载(以及当整个 DOM 可以被有效使用时),JavaScript 可以设定一个函数来运行。下面的函数会创建一个新的 H1 元素,为元素添加文本,并将 H1 添加在文档树中。 

      <html>
         <head>
      @@ -108,7 +108,7 @@ 

      重要的数据类型<
    • list.item(1)
    • list[1]
    - 两种方式是等价的,第一种方式中 item() 是 nodeList 对象中的单独方法。 后面的方式则使用了经典的数组语法来获取列表中的第二个条目。 + 两种方式是等价的,第一种方式中 item() 是 nodeList 对象中的单独方法。后面的方式则使用了经典的数组语法来获取列表中的第二个条目。 @@ -116,7 +116,7 @@

    重要的数据类型<

    - +
    attribute
    namedNodeMap namedNodeMap 和数组类似,但是条目是由 name 或 index 访问的,虽然后一种方式仅仅是为了枚举方便,因为在 list 中本来就没有特定的顺序。 出于这个目的,  namedNodeMap 有一个 item() 方法,你也可以从  namedNodeMap 添加或移除条目。 namedNodeMap 和数组类似,但是条目是由 name 或 index 访问的,虽然后一种方式仅仅是为了枚举方便,因为在 list 中本来就没有特定的顺序。出于这个目的,  namedNodeMap 有一个 item() 方法,你也可以从  namedNodeMap 添加或移除条目。
    @@ -129,7 +129,7 @@

    DOM 接口

    接口及对象

    -

    许多对象都实现了多个接口。例如,table 对象实现了 HTML Table Element Interface, 其中包括 createCaption 和 insertRow 方法。但由于 table 对象也是一个 HTML 元素, table 也实现了 Element 接口(在  DOM element Reference 一章有对应描述)。最后,由于 HTML 元素对 DOM 来说也是组成 web 页面或 XML 页面节点树中的一个节点, table 元素也实现更基本的  Node 接口, Element 对象也继承这个接口。

    +

    许多对象都实现了多个接口。例如,table 对象实现了 HTML Table Element Interface, 其中包括 createCaption 和 insertRow 方法。但由于 table 对象也是一个 HTML 元素, table 也实现了 Element 接口(在  DOM element Reference 一章有对应描述)。最后,由于 HTML 元素对 DOM 来说也是组成 web 页面或 XML 页面节点树中的一个节点,table 元素也实现更基本的  Node 接口, Element 对象也继承这个接口。

    正如下面的例子,当你得到一个  table 对象的引用时,你经常会轮流使用对象实现的三个不同接口的方法,但并不知其所以然。 

    @@ -146,7 +146,7 @@

    接口及对象DOM 中核心接口

    -

    本节列出了在 DOM 中最常用的一些接口。此处并不会描述这些 API 在做什么,但是会让你了解当你使用 DOM 时常用的各种方法和属性。 这些常用的 API 在本文档最后的  DOM Examples 章节中 (包含更长的实例) 中有使用。

    +

    本节列出了在 DOM 中最常用的一些接口。此处并不会描述这些 API 在做什么,但是会让你了解当你使用 DOM 时常用的各种方法和属性。这些常用的 API 在本文档最后的  DOM Examples 章节中 (包含更长的实例) 中有使用。

    您在 DOM 编程时,通常使用的最多的就是 Document 和 window 对象。简单的说, window 对象表示浏览器中的内容,而 document 对象是文档本身的根节点。Element 继承了通用的 Node 接口, 将这两个接口结合后就提供了许多方法和属性可以供单个元素使用。在处理这些元素所对应的不同类型的数据时,这些元素可能会有专用的接口,如上节中的  table  对象的例子。

    @@ -170,7 +170,7 @@

    DOM 中核

    测试 DOM API

    -

    本文档提供了每一个接口的样本示例,您可以在自身进行 web 开发时使用。在有些情况下, 样例是一个完整的 HTML 页面,通过使用 <script> 元素标签进行 DOM 访问,包含必须的接口 (如 buttons) 来触发表单中的脚本, 以及 DOM 所操作的 HTML 元素。 此时,您可以将实例进行剪切和复制到一个新的 HTML 文档中,保存完成后,在浏览器中运行该实例。

    +

    本文档提供了每一个接口的样本示例,您可以在自身进行 web 开发时使用。在有些情况下,样例是一个完整的 HTML 页面,通过使用 <script> 元素标签进行 DOM 访问,包含必须的接口 (如 buttons) 来触发表单中的脚本,以及 DOM 所操作的 HTML 元素。此时,您可以将实例进行剪切和复制到一个新的 HTML 文档中,保存完成后,在浏览器中运行该实例。

    然而在一些情况下,例子会更简洁。想要运行那些仅仅用来展示 HTML 元素接口之间基本关系的示例,你可能会想创建一个测试页面,在里面你可以通过脚本使用这些接口。下面这个非常简单的网页在 header 中提供了一个<script>元素,这里面你可以使用测试接口的函数,一些你可以获取、设置或者操纵的 HTML 元素及其属性,以及必须的 web user 接口来从浏览器调用这些接口。

    diff --git a/files/zh-cn/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html b/files/zh-cn/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html index 8e64a1b1f23227..9a07d129da2f81 100644 --- a/files/zh-cn/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html +++ b/files/zh-cn/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html @@ -113,7 +113,7 @@

    <html> <head> diff --git a/files/zh-cn/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html b/files/zh-cn/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html index 8a204448dfd2f0..a5e7ffd5401b62 100644 --- a/files/zh-cn/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html +++ b/files/zh-cn/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html @@ -24,7 +24,7 @@

    什么是内

    当 Mozilla 解析文档的时候,它首先构建一个内容树然后用它来显示这个文档。

    -

    用于描述树状结构的术语通常出现在 DOM Level 1 的核心中。 我上面画的每一个方块都是这个树的一个节点。 节点上面的线条表示父子关系:上面的父节点,而位于下方的是子节点。位于一个父节点下面的两个子节点是相邻的。 类似地,我们可以指代祖先和后代。(不过,表亲们太乱了。)

    +

    用于描述树状结构的术语通常出现在 DOM Level 1 的核心中。 我上面画的每一个方块都是这个树的一个节点。 节点上面的线条表示父子关系:上面的父节点,而位于下方的是子节点。位于一个父节点下面的两个子节点是相邻的。类似地,我们可以指代祖先和后代。(不过,表亲们太乱了。)

    DOM Level 1 核心能让我们做什么?

    diff --git a/files/zh-cn/web/api/document_object_model/whitespace/index.html b/files/zh-cn/web/api/document_object_model/whitespace/index.html index 534bc4be06b5bf..14aec1591bb2ff 100644 --- a/files/zh-cn/web/api/document_object_model/whitespace/index.html +++ b/files/zh-cn/web/api/document_object_model/whitespace/index.html @@ -5,7 +5,7 @@ ---

    问题说明

    -

    DOM 中的空白符会让处理节点结构时增加不少麻烦。在 Mozilla 的软件中,原始文件里所有空白符都会在 DOM 中出现(不包括标签内含的空白符)。这样的处理方式有其必要之处,一方面编辑器中可迳行排列文字、二方面 CSS 里的 white-space: pre 也才能发挥作用。 如此一来就表示:

    +

    DOM 中的空白符会让处理节点结构时增加不少麻烦。在 Mozilla 的软件中,原始文件里所有空白符都会在 DOM 中出现(不包括标签内含的空白符)。这样的处理方式有其必要之处,一方面编辑器中可迳行排列文字、二方面 CSS 里的 white-space: pre 也才能发挥作用。如此一来就表示:

    • 有些空白符会自成一个文本节点。
    • @@ -109,7 +109,7 @@

      示例

      -

      下面的代码演示了上面这些工具函数的使用方法。具体操作是,遍历一个子节点全部为元素节点的元素,找到所包含的第一个节点为一个文本内容为 “This is the third paragraph” 的文本节点的那个子元素,并修改该子元素的 class 属性及其第一个文本节点的文字内容。

      +

      下面的代码演示了上面这些工具函数的使用方法。具体操作是,遍历一个子节点全部为元素节点的元素,找到所包含的第一个节点为一个文本内容为“This is the third paragraph”的文本节点的那个子元素,并修改该子元素的 class 属性及其第一个文本节点的文字内容。

      var cur = first_child(document.getElementById("test"));
       while (cur)
      diff --git a/files/zh-cn/web/api/domexception/index.html b/files/zh-cn/web/api/domexception/index.html
      index 8fc1a1d2d70d66..74aff79b530b37 100644
      --- a/files/zh-cn/web/api/domexception/index.html
      +++ b/files/zh-cn/web/api/domexception/index.html
      @@ -5,7 +5,7 @@
       ---
       

      {{ APIRef("DOM") }}

      -

       DOMException 接口代表调用方法或访问 Web API 属性时发生的异常事件(被称为异常exception)。 这基本上是在 Web API 中如何描述错误情况的

      +

       DOMException 接口代表调用方法或访问 Web API 属性时发生的异常事件(被称为异常exception)。这基本上是在 Web API 中如何描述错误情况的

      每个异常都有一个名称 name,一个采用骆驼式命名法的简短字符串,用于描述识别错误或异常情况。

      @@ -55,31 +55,31 @@

      错误名称

      NotSupportedError
      不支持的操作。 (Legacy code value: 9 and legacy constant name: NOT_SUPPORTED_ERR)
      InvalidStateError
      -
      对象是一个无效的状态. (Legacy code value: 11 and legacy constant name: INVALID_STATE_ERR)
      +
      对象是一个无效的状态。(Legacy code value: 11 and legacy constant name: INVALID_STATE_ERR)
      SyntaxError
      -
      字符串不匹配预期的模式. (Legacy code value: 12 and legacy constant name: SYNTAX_ERR)
      +
      字符串不匹配预期的模式。(Legacy code value: 12 and legacy constant name: SYNTAX_ERR)
      InvalidModificationError
      对象不能被这种方式修改。 (Legacy code value: 13 and legacy constant name: INVALID_MODIFICATION_ERR)
      NamespaceError
      -
      操作在 XML 名称空间是不允许的. (Legacy code value: 14 and legacy constant name: NAMESPACE_ERR)
      +
      操作在 XML 名称空间是不允许的。(Legacy code value: 14 and legacy constant name: NAMESPACE_ERR)
      InvalidAccessError
      对象不支持此操作或参数 (Legacy code value: 15 and legacy constant name: INVALID_ACCESS_ERR)
      TypeMismatchError {{deprecated_inline}}
      -
      对象的类型不匹配预期的类型. (Legacy code value: 17 and legacy constant name: TYPE_MISMATCH_ERR) 这个值已被弃用, JavaScript {{jsxref("TypeError")}} 异常被提出而不是DOMException
      +
      对象的类型不匹配预期的类型。(Legacy code value: 17 and legacy constant name: TYPE_MISMATCH_ERR) 这个值已被弃用, JavaScript {{jsxref("TypeError")}} 异常被提出而不是DOMException
      SecurityError {{experimental_inline}}
      操作不安全。 (Legacy code value: 18 and legacy constant name: SECURITY_ERR)
      NetworkError {{experimental_inline}}
      -
      网络错误发生. (Legacy code value: 19 and legacy constant name: NETWORK_ERR)
      +
      网络错误发生。(Legacy code value: 19 and legacy constant name: NETWORK_ERR)
      AbortError {{experimental_inline}}
      -
      T 操作中止. (Legacy code value: 20 and legacy constant name: ABORT_ERR)
      +
      T 操作中止。(Legacy code value: 20 and legacy constant name: ABORT_ERR)
      URLMismatchError {{experimental_inline}}
      给定的 URL 不匹配另一个 URL。 (Legacy code value: 21 and legacy constant name: URL_MISMATCH_ERR)
      QuotaExceededError {{experimental_inline}}
      给定配额已经超过了 (Legacy code value: 22 and legacy constant name: QUOTA_EXCEEDED_ERR)
      TimeoutError {{experimental_inline}}
      -
      操作超时. (Legacy code value: 23 and legacy constant name: TIMEOUT_ERR)
      +
      操作超时。(Legacy code value: 23 and legacy constant name: TIMEOUT_ERR)
      InvalidNodeTypeError {{experimental_inline}}
      -
      这个操作的节点是不正确的或祖先是不正确的. (Legacy code value: 24 and legacy constant name: INVALID_NODE_TYPE_ERR)
      +
      这个操作的节点是不正确的或祖先是不正确的。(Legacy code value: 24 and legacy constant name: INVALID_NODE_TYPE_ERR)
      sDataCloneError {{experimental_inline}}
      对象不可被克隆。 (Legacy code value: 25 and legacy constant name: DATA_CLONE_ERR)
      EncodingError {{experimental_inline}}
      diff --git a/files/zh-cn/web/api/domimplementation/createdocumenttype/index.html b/files/zh-cn/web/api/domimplementation/createdocumenttype/index.html index b95329184d1d1e..a3f826ee392c49 100644 --- a/files/zh-cn/web/api/domimplementation/createdocumenttype/index.html +++ b/files/zh-cn/web/api/domimplementation/createdocumenttype/index.html @@ -23,7 +23,7 @@

      参数

      publicId
      -
       {{domxref("DOMString")}} 类型的值, 包含 PUBLIC 标识符。
      +
       {{domxref("DOMString")}} 类型的值,包含 PUBLIC 标识符。
      diff --git a/files/zh-cn/web/api/domimplementation/createhtmldocument/index.html b/files/zh-cn/web/api/domimplementation/createhtmldocument/index.html index 2996807480aa9a..69c4ca4e3a4eba 100644 --- a/files/zh-cn/web/api/domimplementation/createhtmldocument/index.html +++ b/files/zh-cn/web/api/domimplementation/createhtmldocument/index.html @@ -58,7 +58,7 @@

      例子

      }
      -

      代码 4-12 行创建了一个新的 HTML 文档,并在里面插入一些内容。第 4 行 createHTMLDocument()构造了一个标题为"New Document"的 HTML 文档. 5-6 行创建了一个段落元素并在里面插入了一些内容,8-12 行将新建的段落元素插入到 HTML 文档中。

      +

      代码 4-12 行创建了一个新的 HTML 文档,并在里面插入一些内容。第 4 行 createHTMLDocument()构造了一个标题为"New Document"的 HTML 文档。5-6 行创建了一个段落元素并在里面插入了一些内容,8-12 行将新建的段落元素插入到 HTML 文档中。

      16 行获取了 iframe 的contentDocument 属性。这是我们将要插入新建的 HTML 文档的地方。下面的两行将新建的 HTML 文档插入到了 iframe 的根元素中。这样,我们用 20 行代码实现了用一个新建的 HTML 文档替换 iframe 中原有文档的目的。

      diff --git a/files/zh-cn/web/api/dommatrix/index.html b/files/zh-cn/web/api/dommatrix/index.html index 3dd88122c6eb60..d088fe6465b61c 100644 --- a/files/zh-cn/web/api/dommatrix/index.html +++ b/files/zh-cn/web/api/dommatrix/index.html @@ -7,7 +7,7 @@

      DOMMatrix接口代表 4x4 矩阵,适合 2D 和 3D 操作。

      -

      一个 4x4 矩阵适于描绘任何 3D 的旋转(rotation )和过渡(translation)。

      +

      一个 4x4 矩阵适于描绘任何 3D 的旋转(rotation)和过渡(translation)。

      此接口在 Web workers 里应该是可用的,虽然某些实现现在还不允许。

      diff --git a/files/zh-cn/web/api/domrectreadonly/index.html b/files/zh-cn/web/api/domrectreadonly/index.html index 61360f46836834..1683f7c2e6892f 100644 --- a/files/zh-cn/web/api/domrectreadonly/index.html +++ b/files/zh-cn/web/api/domrectreadonly/index.html @@ -11,7 +11,7 @@

      构造函数

      {{domxref("DOMRectReadOnly.DOMRectReadOnly","DOMRectReadOnly()")}}
      -
      用来创建新的 DOMRectReadOnly 对象,但请注意,该构造函数不能由第三方 JavaScript 调用:这样做将返回 “Illegal constructor” 类型错误。
      +
      用来创建新的 DOMRectReadOnly 对象,但请注意,该构造函数不能由第三方 JavaScript 调用:这样做将返回“Illegal constructor”类型错误。

      属性

      diff --git a/files/zh-cn/web/api/domtokenlist/contains/index.html b/files/zh-cn/web/api/domtokenlist/contains/index.html index eaa14d0a933c2f..08ebbef8b1cee5 100644 --- a/files/zh-cn/web/api/domtokenlist/contains/index.html +++ b/files/zh-cn/web/api/domtokenlist/contains/index.html @@ -24,7 +24,7 @@

      返回值

      例子

      -

      在下面的列子中,我们通过{{domxref("Element.classList")}}方法从 {{htmlelement("span")}} 元素中获取DOMTokenList 对象。 然后测试验证"c" 是否包含在列表中, 结果输出到 <span>标签的内容 {{domxref("Node.textContent")}}。

      +

      在下面的列子中,我们通过{{domxref("Element.classList")}}方法从 {{htmlelement("span")}} 元素中获取DOMTokenList 对象。然后测试验证"c" 是否包含在列表中,结果输出到 <span>标签的内容 {{domxref("Node.textContent")}}。

      HTML:

      diff --git a/files/zh-cn/web/api/domtokenlist/item/index.html b/files/zh-cn/web/api/domtokenlist/item/index.html index 263cd29070646a..0c001f27a4767d 100644 --- a/files/zh-cn/web/api/domtokenlist/item/index.html +++ b/files/zh-cn/web/api/domtokenlist/item/index.html @@ -24,13 +24,13 @@

      返回值

      例子

      -

      在下面的列子中,我们通过{{domxref("Element.classList")}}方法从{{htmlelement("span")}}元素中获取DOMTokenList对象。 然后使用item(tokenList.length - 1)检索列表中的最后的一个项,并将其写入<span>元素的 {{domxref("Node.textContent")}}。

      +

      在下面的列子中,我们通过{{domxref("Element.classList")}}方法从{{htmlelement("span")}}元素中获取DOMTokenList对象。然后使用item(tokenList.length - 1)检索列表中的最后的一个项,并将其写入<span>元素的 {{domxref("Node.textContent")}}。

      -

      首先, HTML:

      +

      首先,HTML:

      <span class="a b c"></span>
      -

      然后, JavaScript:

      +

      然后,JavaScript:

      let span = document.querySelector("span");
       let classes = span.classList;
      diff --git a/files/zh-cn/web/api/domtokenlist/keys/index.html b/files/zh-cn/web/api/domtokenlist/keys/index.html
      index 87842b67712b4c..3505a720443015 100644
      --- a/files/zh-cn/web/api/domtokenlist/keys/index.html
      +++ b/files/zh-cn/web/api/domtokenlist/keys/index.html
      @@ -29,7 +29,7 @@ 

      返回值

      例子

      -

      在下面的例子中,我们获取了一个使用 {{domxref("Element.classList")}}属性获取了一个 DOMTokenList ,在这里它表示了这个 {{htmlelement("span")}} 元素的所有 class 属性值的键(索引)。然后我们使用了它的  keys()方法获取了一个 iterator, 最后再使用 for ... of 循环来对所有键(这里是索引)进行遍历,将遍历的每一个结果都写到这个 <span> 标签内( 使用{{domxref("Node.textContent")}}属性)显示。

      +

      在下面的例子中,我们获取了一个使用 {{domxref("Element.classList")}}属性获取了一个 DOMTokenList ,在这里它表示了这个 {{htmlelement("span")}} 元素的所有 class 属性值的键(索引)。然后我们使用了它的  keys()方法获取了一个 iterator,最后再使用 for ... of 循环来对所有键(这里是索引)进行遍历,将遍历的每一个结果都写到这个 <span> 标签内( 使用{{domxref("Node.textContent")}}属性)显示。

      首先,例子使用的 HTML 代码为:

      diff --git a/files/zh-cn/web/api/domtokenlist/toggle/index.html b/files/zh-cn/web/api/domtokenlist/toggle/index.html index 5abcec0423d386..047c664ee1e596 100644 --- a/files/zh-cn/web/api/domtokenlist/toggle/index.html +++ b/files/zh-cn/web/api/domtokenlist/toggle/index.html @@ -9,7 +9,7 @@ ---

      {{APIRef("DOM")}}

      -

      {{domxref("DOMTokenList")}} 接口的 toggle() 方法从列表中删除一个给定的标记 并返回 false 。 如果标记 不存在,则添加并且函数返回 true

      +

      {{domxref("DOMTokenList")}} 接口的 toggle() 方法从列表中删除一个给定的标记 并返回 false 。如果标记 不存在,则添加并且函数返回 true

      语法

      diff --git a/files/zh-cn/web/api/dragevent/index.html b/files/zh-cn/web/api/dragevent/index.html index 7fe307910e5eae..defd14761eb15c 100644 --- a/files/zh-cn/web/api/dragevent/index.html +++ b/files/zh-cn/web/api/dragevent/index.html @@ -5,7 +5,7 @@ ---
      {{APIRef("HTML Drag and Drop API")}}
      -

      DragEvent 是一个表示拖、放交互的一个{{domxref("Event","DOM event")}} 接口。用户通过将指针设备(例如鼠标)放置在触摸表面上并且然后将指针拖动到新位置(诸如另一个 DOM 元素)来发起拖动。 应用程序可以按应用程序特定的方式自由解释拖放交互。

      +

      DragEvent 是一个表示拖、放交互的一个{{domxref("Event","DOM event")}} 接口。用户通过将指针设备(例如鼠标)放置在触摸表面上并且然后将指针拖动到新位置(诸如另一个 DOM 元素)来发起拖动。应用程序可以按应用程序特定的方式自由解释拖放交互。

      这个接口继承 {{domxref("MouseEvent")}} 和{{domxref("Event")}}属性

      diff --git a/files/zh-cn/web/api/element/classlist/index.html b/files/zh-cn/web/api/element/classlist/index.html index 2e7027983eb4e3..2a15d4e180e115 100644 --- a/files/zh-cn/web/api/element/classlist/index.html +++ b/files/zh-cn/web/api/element/classlist/index.html @@ -253,7 +253,7 @@

      警告

      polyfill 的功能有限。它目前无法在 IE6-7 中使用和获取“游离于文档外的”元素 (例如:由document.createElement创建的元素,在它们被附加到父节点之前)。

      -

      然而,它应该在 IE9 中运行良好。classList的多适应性版本和 W3 规范之间的一个主要差异是:对于 IE6-8,没有办法创建一个不可变的对象 (其属性不能被直接修改的对象)。然而,在 IE9 中,可以通过扩展原型、冻结可见对象和覆盖本地属性方法来实现。虽然这样的动作在 IE6-IE8 中不起作用,即使在 IE9 中,这样做也会使整个网页的性能慢得像蜗牛爬行一样,使得这些修改对于这个聚合函数来说完全不切实际。 需要注意的是,在 IE6-7 中,这个 polyfill 使用 window 对象上的 window[" uCL"] 属性与 CSS 表达式进行通信,使用 x-uCLp css 属性对所有元素进行通信,使用元素 [" uCL"] 属性对所有元素进行通信,以允许垃圾收集并提高性能。在所有多填充浏览器 (IE6-9) 中,一个额外的元素 [" uCLp"] 属性被添加到元素以确保符合标准原型,并且一个 DOMTokenList[" uCL"] 属性被添加到每个元素 ["classList"] 对象以确保 DOMTokenList 被绑定到它自己的元素。

      +

      然而,它应该在 IE9 中运行良好。classList的多适应性版本和 W3 规范之间的一个主要差异是:对于 IE6-8,没有办法创建一个不可变的对象 (其属性不能被直接修改的对象)。然而,在 IE9 中,可以通过扩展原型、冻结可见对象和覆盖本地属性方法来实现。虽然这样的动作在 IE6-IE8 中不起作用,即使在 IE9 中,这样做也会使整个网页的性能慢得像蜗牛爬行一样,使得这些修改对于这个聚合函数来说完全不切实际。需要注意的是,在 IE6-7 中,这个 polyfill 使用 window 对象上的 window[" uCL"] 属性与 CSS 表达式进行通信,使用 x-uCLp css 属性对所有元素进行通信,使用元素 [" uCL"] 属性对所有元素进行通信,以允许垃圾收集并提高性能。在所有多填充浏览器 (IE6-9) 中,一个额外的元素 [" uCLp"] 属性被添加到元素以确保符合标准原型,并且一个 DOMTokenList[" uCL"] 属性被添加到每个元素 ["classList"] 对象以确保 DOMTokenList 被绑定到它自己的元素。

      规范

      diff --git a/files/zh-cn/web/api/element/clientheight/index.html b/files/zh-cn/web/api/element/clientheight/index.html index ca1118a03b580c..5833990f2d6943 100644 --- a/files/zh-cn/web/api/element/clientheight/index.html +++ b/files/zh-cn/web/api/element/clientheight/index.html @@ -12,9 +12,9 @@

      clientHeight 可以通过 CSS height + CSS padding - 水平滚动条高度 (如果存在) 来计算。

      -

      备注: 此属性会将获取的值四舍五入取整数。 如果你需要小数结果,请使用 {{ domxref("element.getBoundingClientRect()") }}.

      +

      备注: 此属性会将获取的值四舍五入取整数。如果你需要小数结果,请使用 {{ domxref("element.getBoundingClientRect()") }}.

      -

      备注:上面的有问题 因为使用 element.getBoundingClientRect() 只能获取元素的 width / height,但是这个值是 offsetWidth / offsetHeight ,包括边框的长度,所以不能获取 clientWidth / clientHeight

      +

      备注:上面的有问题 因为使用 element.getBoundingClientRect() 只能获取元素的 width / height,但是这个值是 offsetWidth / offsetHeight,包括边框的长度,所以不能获取 clientWidth / clientHeight

      语法

      diff --git a/files/zh-cn/web/api/element/closest/index.html b/files/zh-cn/web/api/element/closest/index.html index 687b1417ae0a49..f7980c53571adc 100644 --- a/files/zh-cn/web/api/element/closest/index.html +++ b/files/zh-cn/web/api/element/closest/index.html @@ -125,6 +125,6 @@

      相关链接

    • -
      其他相关选择器方法: {{domxref("element.querySelector()")}} and {{domxref("element.matches()")}}.
      +
      其他相关选择器方法:{{domxref("element.querySelector()")}} and {{domxref("element.matches()")}}.
    diff --git a/files/zh-cn/web/api/element/getattributenode/index.html b/files/zh-cn/web/api/element/getattributenode/index.html index 5f56cb5b492542..72ac8f9e6b1ac9 100644 --- a/files/zh-cn/web/api/element/getattributenode/index.html +++ b/files/zh-cn/web/api/element/getattributenode/index.html @@ -18,7 +18,7 @@

    语法

      -
    • attrNode  获得的属性返回值,是 Attr 节点, nodeType 为 2
    • +
    • attrNode  获得的属性返回值,是 Attr 节点,nodeType 为 2
    • attrName 是一个包含属性名称的 字符串
    @@ -32,7 +32,7 @@

    举例

    注意

    -

    当在一个被标记为 HTML 文档的 DOM 中的 HTML 元素上调用这个方法时, getAttributeNode 会将参数转变为小写形式。

    +

    当在一个被标记为 HTML 文档的 DOM 中的 HTML 元素上调用这个方法时,getAttributeNode 会将参数转变为小写形式。

    Attr 节点继承自 Node,但不被认为是文档树的一部分。Node 上定义的常用属性,如 parentNode, previousSibling,和 nextSibling 对于 Attr 节点来说都为 null。然而,你可以使用 ownerElement 来得到拥有这个属性的元素。

    diff --git a/files/zh-cn/web/api/element/getelementsbytagname/index.html b/files/zh-cn/web/api/element/getelementsbytagname/index.html index b0c333164ab7cd..a25f3b8a1538cc 100644 --- a/files/zh-cn/web/api/element/getelementsbytagname/index.html +++ b/files/zh-cn/web/api/element/getelementsbytagname/index.html @@ -20,9 +20,9 @@

    语法

    elements = element.getElementsByTagName(tagName)
      -
    • elements 搜索到的元素的动态 HTML 集合{{domxref("HTMLCollection")}},它们的顺序是在子树中出现的顺序。 如果没有搜索到元素则这个集合为空。
    • +
    • elements 搜索到的元素的动态 HTML 集合{{domxref("HTMLCollection")}},它们的顺序是在子树中出现的顺序。如果没有搜索到元素则这个集合为空。
    • element 搜索从 element 开始。请注意只有 element 的后代元素会被搜索,不包括元素自己。
    • -
    • tagName 要查找的限定名。 字符 "*" 代表所有元素。 考虑到兼容 XHTML,应该使用小写。
    • +
    • tagName 要查找的限定名。字符 "*" 代表所有元素。 考虑到兼容 XHTML,应该使用小写。

    实例

    diff --git a/files/zh-cn/web/api/element/index.html b/files/zh-cn/web/api/element/index.html index cd28a65314eeb4..60629762d91a7c 100644 --- a/files/zh-cn/web/api/element/index.html +++ b/files/zh-cn/web/api/element/index.html @@ -49,7 +49,7 @@

    属性

    {{DOMxRef("Element.localName")}} {{readOnlyInline}}
    是一个 {{DOMxRef("DOMString")}} 表示这个元素名称本地化的部分。
    {{DOMxRef("Element.namespaceURI")}} {{readonlyInline}}
    -
    元素对应的 namespace URI ,如果没有则返回 null +
    元素对应的 namespace URI,如果没有则返回 null

    Note: In Firefox 3.5 and earlier, HTML elements are in no namespace. In later versions, HTML elements are in the http://www.w3.org/1999/xhtml namespace in both HTML and XML trees.

    diff --git a/files/zh-cn/web/api/element/innerhtml/index.html b/files/zh-cn/web/api/element/innerhtml/index.html index 052317fe4237dc..9b4259013d7447 100644 --- a/files/zh-cn/web/api/element/innerhtml/index.html +++ b/files/zh-cn/web/api/element/innerhtml/index.html @@ -42,7 +42,7 @@

    使用说明

    获取元素的 HTML

    -

    获取 innerHTML 会导致用户代理序列化 由元素后代组成的 HTML 或者 XML 。返回结果字符串。

    +

    获取 innerHTML 会导致用户代理序列化 由元素后代组成的 HTML 或者 XML。返回结果字符串。

    let contents = myElement.innerHTML;
     
    @@ -156,7 +156,7 @@

    HTML

    </div> -

    具有 “box” 类的 {{HTMLElement("div")}} 容器仅仅是出于布局考虑,用一个框来展示其内容。具有 “log” 类的 <div> 元素是作为消息本身的内容框。

    +

    具有“box”类的 {{HTMLElement("div")}} 容器仅仅是出于布局考虑,用一个框来展示其内容。具有“log”类的 <div> 元素是作为消息本身的内容框。

    CSS

    diff --git a/files/zh-cn/web/api/element/insertadjacentelement/index.html b/files/zh-cn/web/api/element/insertadjacentelement/index.html index bc31c02fefac8e..a64cd753f07a5c 100644 --- a/files/zh-cn/web/api/element/insertadjacentelement/index.html +++ b/files/zh-cn/web/api/element/insertadjacentelement/index.html @@ -83,7 +83,7 @@

    例子

    setListener(tempDiv); }); -

    看看我们在 Github(也可以参考 源码)上的 insertAdjacentElement.html 演示。在一个容器当中我们有一组{{htmlelement("div")}} 元素。 点击其中一个 div 时,这个容器会处于选中状态,然后你就可以按下Insert before 或Insert after 按钮通过 insertAdjacentElement() 方法来把一个新的 divs 插入到选中的元素前面或者后面。

    +

    看看我们在 Github(也可以参考 源码)上的 insertAdjacentElement.html 演示。在一个容器当中我们有一组{{htmlelement("div")}} 元素。点击其中一个 div 时,这个容器会处于选中状态,然后你就可以按下Insert before 或Insert after 按钮通过 insertAdjacentElement() 方法来把一个新的 divs 插入到选中的元素前面或者后面。

    规范

    diff --git a/files/zh-cn/web/api/element/keyup_event/index.html b/files/zh-cn/web/api/element/keyup_event/index.html index d710baaeac48f5..96045bf7c05120 100644 --- a/files/zh-cn/web/api/element/keyup_event/index.html +++ b/files/zh-cn/web/api/element/keyup_event/index.html @@ -30,9 +30,9 @@ -

    keydown 和 keyup 事件提供指出哪个键被按下的代码,而 keypress 指出哪些字符被输入。例如,小写字母 “a” 在 keydown 和 keyup 时会被报告为 65,但在 keypress 时为 97。所有事件均将大写字母 “A” 报告为 65。

    +

    keydown 和 keyup 事件提供指出哪个键被按下的代码,而 keypress 指出哪些字符被输入。例如,小写字母 “a” 在 keydown 和 keyup 时会被报告为 65,但在 keypress 时为 97。所有事件均将大写字母“A”报告为 65。

    -

    从 Firefox 65 开始,keyup 和 keydown 事件在 IME 编辑时也会被触发,以提升 CJKT 用户的跨浏览器兼容性({{bug(354358)}})。要忽略 IME 编辑时的所有 keyup 事件,请执行以下操作(229 是一个关于被 IME 加工过的事件的  keyCode 的特殊值 ):

    +

    从 Firefox 65 开始,keyup 和 keydown 事件在 IME 编辑时也会被触发,以提升 CJKT 用户的跨浏览器兼容性({{bug(354358)}})。要忽略 IME 编辑时的所有 keyup 事件,请执行以下操作(229 是一个关于被 IME 加工过的事件的  keyCode 的特殊值):

    eventTarget.addEventListener("keyup", event => {
       if (event.isComposing || event.keyCode === 229) {
    diff --git a/files/zh-cn/web/api/element/mousedown_event/index.html b/files/zh-cn/web/api/element/mousedown_event/index.html
    index b71a09c18da92e..5face9064e050b 100644
    --- a/files/zh-cn/web/api/element/mousedown_event/index.html
    +++ b/files/zh-cn/web/api/element/mousedown_event/index.html
    @@ -75,7 +75,7 @@ 

    属性

    relatedTarget {{readonlyInline}} {{domxref("EventTarget")}} - 对于 mouseover, mouseout, mouseenter 及 mouseleave 事件: 该事件及其互补事件(如 mouseleave 对应 mouseenter 事件)。不存在时为 null  + 对于 mouseover, mouseout, mouseenter 及 mouseleave 事件:该事件及其互补事件(如 mouseleave 对应 mouseenter 事件)。不存在时为 null  screenX {{readonlyInline}} diff --git a/files/zh-cn/web/api/element/mouseenter_event/index.html b/files/zh-cn/web/api/element/mouseenter_event/index.html index e99ef1fd7290ee..250b13b9ee4f87 100644 --- a/files/zh-cn/web/api/element/mouseenter_event/index.html +++ b/files/zh-cn/web/api/element/mouseenter_event/index.html @@ -93,7 +93,7 @@

    Properties 属性列表

    relatedTarget {{readonlyInline}} {{domxref("EventTarget")}} - 对于 mouseover, mouseout, mouseenter 和 mouseleave 事件: the target of the complementary event (the mouseleave target in the case of a mouseenter event). null otherwise. + 对于 mouseover, mouseout, mouseenter 和 mouseleave 事件:the target of the complementary event (the mouseleave target in the case of a mouseenter event). null otherwise. screenX {{readonlyInline}} @@ -123,7 +123,7 @@

    Properties 属性列表

    buttons {{readonlyInline}} unsigned short - 表明当事件触发时鼠标上按下的键:左键=1,右键=2,中键 (鼠标滚轮) =4,第四个按钮 (通常是 “浏览器返回上一个页面”按钮)=8,第五个按钮 (通常是“浏览器向前导航”按钮)=16. 如果很多按钮同时按下,那就返回这些值的逻辑计算值。比如,当左键和右键同时按下时返回 3 (=1 | 2). 了解更多. + 表明当事件触发时鼠标上按下的键:左键=1,右键=2,中键 (鼠标滚轮) =4,第四个按钮 (通常是“浏览器返回上一个页面”按钮)=8,第五个按钮 (通常是“浏览器向前导航”按钮)=16. 如果很多按钮同时按下,那就返回这些值的逻辑计算值。比如,当左键和右键同时按下时返回 3 (=1 | 2). 了解更多. mozPressure {{readonlyInline}} diff --git a/files/zh-cn/web/api/element/namespaceuri/index.html b/files/zh-cn/web/api/element/namespaceuri/index.html index d1edb01217e176..9649049b8af133 100644 --- a/files/zh-cn/web/api/element/namespaceuri/index.html +++ b/files/zh-cn/web/api/element/namespaceuri/index.html @@ -8,7 +8,7 @@

    Element.namespaceURI 是一个只读属性,它返回元素的命名空间,若该元素不在命名空间中则返回null .

    -

    在 DOM4 之前, 这个 API 在接口 {{domxref("Node")}} 中定义 .

    +

    在 DOM4 之前,这个 API 在接口 {{domxref("Node")}} 中定义 .

    语法

    @@ -28,11 +28,11 @@

    注意

    这不是一个计算值,它是基于范围内的名称空间声明检查的名称空间查找的结果。节点命名空间在节点创建时被冻结。

    -

    在 Firefox 3.5 以及之前的版本, HTML 文档中的 HTML 元素的名称空间 URI 为 null。 在更早的版本中,符合 HTML5, 它是http://www.w3.org/1999/xhtml 如 XHTML。

    +

    在 Firefox 3.5 以及之前的版本,HTML 文档中的 HTML 元素的名称空间 URI 为 null。在更早的版本中,符合 HTML5,它是http://www.w3.org/1999/xhtml 如 XHTML。

    您可以使用 DOM Level 2 方法指定的namespaceURI创建一个元素 document.createElementNS

    -

    DOM 本身不处理或执行名称空间验证。 它由 DOM 应用程序完成,以执行任何必要的验证。注意,名称空间前缀一旦与某个特定元素相关联,就不能更改。

    +

    DOM 本身不处理或执行名称空间验证。它由 DOM 应用程序完成,以执行任何必要的验证。注意,名称空间前缀一旦与某个特定元素相关联,就不能更改。

    说明

    diff --git a/files/zh-cn/web/api/element/outerhtml/index.html b/files/zh-cn/web/api/element/outerhtml/index.html index f34d96c1453453..58c69a2b27acdd 100644 --- a/files/zh-cn/web/api/element/outerhtml/index.html +++ b/files/zh-cn/web/api/element/outerhtml/index.html @@ -84,11 +84,11 @@

    注意事项

    let p = document.getElementsByTagName("p")[0];
     console.log(p.nodeName);
    -// 显示: "P"
    +// 显示:"P"
     p.outerHTML = "<div>This div replaced a paragraph.</div>";
     
     console.log(p.nodeName);
    -// 仍然为: "P";
    +// 仍然为:"P";
     

     

    diff --git a/files/zh-cn/web/api/element/removeattributenode/index.html b/files/zh-cn/web/api/element/removeattributenode/index.html index 7eda442a7a72db..683c43140485cf 100644 --- a/files/zh-cn/web/api/element/removeattributenode/index.html +++ b/files/zh-cn/web/api/element/removeattributenode/index.html @@ -21,10 +21,10 @@

    例如

    // <div id="top" align="center" />
     var d = document.getElementById("top");
    -// getAttributeNode 返回指定元素的指定属性, 返回值是 Attr 节点类型
    +// getAttributeNode 返回指定元素的指定属性,返回值是 Attr 节点类型
     var d_align = d.getAttributeNode("align");
     d.removeAttributeNode(d_align);
    -//  现在 align 被删除了: <div id="top" />
    +//  现在 align 被删除了:<div id="top" />
     

    注意

    diff --git a/files/zh-cn/web/api/element/replacechildren/index.html b/files/zh-cn/web/api/element/replacechildren/index.html index b7b23abb457038..e5e81a05308aa7 100644 --- a/files/zh-cn/web/api/element/replacechildren/index.html +++ b/files/zh-cn/web/api/element/replacechildren/index.html @@ -112,7 +112,7 @@

    在父节点之间转移节点

    width: 200px; }
    -

    我们要做的是,当按下 “是” 按钮时,将 “否” 列表中的所有选定选项都转移到 “是” 列表中,然后当按下“否”按钮时,将 “是” 列表中的所有选定选项都转移到 “否” 列表中。

    +

    我们要做的是,当按下“是”按钮时,将“否”列表中的所有选定选项都转移到“是”列表中,然后当按下“否”按钮时,将“是”列表中的所有选定选项都转移到“否”列表中。

    为此,我们为每个按钮提供一个 click 事件处理句柄,该事件句柄将所选选项赋值到第一个常量中,将要转移到的列表中的现有的选项赋值到第二个常量中。然后,它会调用列表的 replaceChildren() 方法,使用延展运算符传入两个常量,进而将两个常量中包含的所有选项转移到目标列表。

    diff --git a/files/zh-cn/web/api/element/replacewith/index.html b/files/zh-cn/web/api/element/replacewith/index.html index 25819a3ce0f7e8..56d84402643d94 100644 --- a/files/zh-cn/web/api/element/replacewith/index.html +++ b/files/zh-cn/web/api/element/replacewith/index.html @@ -13,7 +13,7 @@ ---
    {{APIRef("DOM")}} {{SeeCompatTable}}
    -

    ChildNode.replaceWith() 的方法用一套 {{domxref("Node")}} 对象或者 {{domxref("DOMString")}} 对象,替换了该节点父节点下的子节点 。{{domxref("DOMString")}} 对象被当做等效的{{domxref("Text")}} 节点插入。

    +

    ChildNode.replaceWith() 的方法用一套 {{domxref("Node")}} 对象或者 {{domxref("DOMString")}} 对象,替换了该节点父节点下的子节点。{{domxref("DOMString")}} 对象被当做等效的{{domxref("Text")}} 节点插入。

    语法

    diff --git a/files/zh-cn/web/api/element/scrollintoviewifneeded/index.html b/files/zh-cn/web/api/element/scrollintoviewifneeded/index.html index caf747e038692f..03476279334932 100644 --- a/files/zh-cn/web/api/element/scrollintoviewifneeded/index.html +++ b/files/zh-cn/web/api/element/scrollintoviewifneeded/index.html @@ -12,7 +12,7 @@ ---
    {{APIRef("DOM")}}{{Non-standard_header}}
    -

    Element.scrollIntoViewIfNeeded()方法用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。 如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。 此方法是标准的Element.scrollIntoView()方法的专有变体。

    +

    Element.scrollIntoViewIfNeeded()方法用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。此方法是标准的Element.scrollIntoView()方法的专有变体。

    语法

    @@ -27,7 +27,7 @@

    参数

    一个 {{jsxref("Boolean")}} 类型的值,默认为true:
    • 如果为 true,则元素将在其所在滚动区的可视区域中居中对齐。
    • -
    • 如果为 false,则元素将与其所在滚动区的可视区域最近的边缘对齐。 根据可见区域最靠近元素的哪个边缘,元素的顶部将与可见区域的顶部边缘对准,或者元素的底部边缘将与可见区域的底部边缘对准。
    • +
    • 如果为 false,则元素将与其所在滚动区的可视区域最近的边缘对齐。根据可见区域最靠近元素的哪个边缘,元素的顶部将与可见区域的顶部边缘对准,或者元素的底部边缘将与可见区域的底部边缘对准。
    diff --git a/files/zh-cn/web/api/element/scrollwidth/index.html b/files/zh-cn/web/api/element/scrollwidth/index.html index 3acd624770ad90..d5ebf2ec661839 100644 --- a/files/zh-cn/web/api/element/scrollwidth/index.html +++ b/files/zh-cn/web/api/element/scrollwidth/index.html @@ -11,7 +11,7 @@ -

    scrollWidth值等于元素在不使用水平滚动条的情况下适合视口中的所有内容所需的最小宽度。 宽度的测量方式与{{domxref("Element.clientWidth", "clientWidth")}}相同:它包含元素的内边距,但不包括边框,外边距或垂直滚动条(如果存在)。 它还可以包括伪元素的宽度,例如{{cssxref("::before")}}或{{cssxref("::after")}}。 如果元素的内容可以适合而不需要水平滚动条,则其scrollWidth等于{{domxref("Element.clientWidth", "clientWidth")}}

    +

    scrollWidth值等于元素在不使用水平滚动条的情况下适合视口中的所有内容所需的最小宽度。宽度的测量方式与{{domxref("Element.clientWidth", "clientWidth")}}相同:它包含元素的内边距,但不包括边框,外边距或垂直滚动条(如果存在)。它还可以包括伪元素的宽度,例如{{cssxref("::before")}}或{{cssxref("::after")}}。如果元素的内容可以适合而不需要水平滚动条,则其scrollWidth等于{{domxref("Element.clientWidth", "clientWidth")}}

    1. 这个属性会进行四舍五入并返回整数,如果你需要小数形式的值,使用{{ domxref("element.getBoundingClientRect()") }}.

    diff --git a/files/zh-cn/web/api/element/setattribute/index.html b/files/zh-cn/web/api/element/setattribute/index.html index ed0289f6c2cca5..2dfef60e4f263c 100644 --- a/files/zh-cn/web/api/element/setattribute/index.html +++ b/files/zh-cn/web/api/element/setattribute/index.html @@ -39,7 +39,7 @@

    参数

    布尔属性(原文是 Boolean attributes)只要出现在元素上就会被认为是 true ,无论它的值是什么; 一般来说,你应该将 value 设置为空字符串 ("") 。(一些人使用这个属性的名称作为值; 这不会出现什么问题,但这是不规范的). See the example below for a practical demonstration.

    -

    由于将指定的值转换为字符串,因此指定 null 不一定能达到您的期望。 而不是删除属性或将其值设置为{{jsxref("null")}},而是将属性的值设置为字符串“ null”。 如果要删除属性,请调用{{domxref("Element.removeAttribute”,“ removeAttribute()")}}}。

    +

    由于将指定的值转换为字符串,因此指定 null 不一定能达到您的期望。而不是删除属性或将其值设置为{{jsxref("null")}},而是将属性的值设置为字符串“null”。如果要删除属性,请调用{{domxref("Element.removeAttribute”,“removeAttribute()")}}}。

    返回值

    @@ -71,8 +71,8 @@

    JavaScript

    这说明了两件事:

      -
    • 上面对 setAttribute() 的第一次调用显示了将 name 属性的值更改为“ helloButton”。 您可以使用浏览器的页面检查器(Chrome,Edge,Firefox,Safari)查看此内容。
    • -
    • 要设置布尔属性的值(例如禁用),可以指定任何值。 建议使用空字符串或属性名称。 重要的是,如果根本不存在该属性,则不管其实际值如何,都将其值视为真实。 该属性的缺失表示其值是 false。 通过将 Disabled 属性的值设置为空字符串(“”),我们将 disable 设置为 true,这将导致按钮被禁用。
    • +
    • 上面对 setAttribute() 的第一次调用显示了将 name 属性的值更改为“helloButton”。您可以使用浏览器的页面检查器(Chrome,Edge,Firefox,Safari)查看此内容。
    • +
    • 要设置布尔属性的值(例如禁用),可以指定任何值。建议使用空字符串或属性名称。重要的是,如果根本不存在该属性,则不管其实际值如何,都将其值视为真实。该属性的缺失表示其值是 false。通过将 Disabled 属性的值设置为空字符串(“”),我们将 disable 设置为 true,这将导致按钮被禁用。

    {{ EmbedLiveSample('示例', '300', '50') }}

    diff --git a/files/zh-cn/web/api/element/setattributenodens/index.html b/files/zh-cn/web/api/element/setattributenodens/index.html index 12ab45fff576af..2987be57639a5b 100644 --- a/files/zh-cn/web/api/element/setattributenodens/index.html +++ b/files/zh-cn/web/api/element/setattributenodens/index.html @@ -38,7 +38,7 @@

    Notes

    如果指定的属性在元素上存在, 接着此属性被新的属性替换的话被替换的属性会被返回。

    -

    注意:如果你尝试设置的时候没有克隆那个节点,Mozia 会抛出一个 NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR :"Attribute already in use" 错误, 因为 DOM 需要克隆属性之后才能重复使用 ( 不像其他节点一样可以被删除 ) 。

    +

    注意:如果你尝试设置的时候没有克隆那个节点,Mozia 会抛出一个 NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR:"Attribute already in use" 错误, 因为 DOM 需要克隆属性之后才能重复使用 ( 不像其他节点一样可以被删除 ) 。

    {{ DOMAttributeMethods() }}

    diff --git a/files/zh-cn/web/api/element/setcapture/index.html b/files/zh-cn/web/api/element/setcapture/index.html index 9d7a693577c3c0..59532a2a84b75a 100644 --- a/files/zh-cn/web/api/element/setcapture/index.html +++ b/files/zh-cn/web/api/element/setcapture/index.html @@ -53,7 +53,7 @@

    示例

    function mouseMoved(e) { var output = document.getElementById("output"); - output.innerHTML = "鼠标的当前位置: " + e.clientX + ", " + e.clientY; + output.innerHTML = "鼠标的当前位置:" + e.clientX + ", " + e.clientY; } </script> </head> diff --git a/files/zh-cn/web/api/element/touchcancel_event/index.html b/files/zh-cn/web/api/element/touchcancel_event/index.html index b6c3f26d83e74c..49c797932266ef 100644 --- a/files/zh-cn/web/api/element/touchcancel_event/index.html +++ b/files/zh-cn/web/api/element/touchcancel_event/index.html @@ -12,7 +12,7 @@ - 触摸事件 translation_of: Web/API/Element/touchcancel_event --- -

    当触摸点被中断时会触发 touchcancel 事件,中断方式基于特定实现而有所不同(例如, 创建了太多的触摸点)。

    +

    当触摸点被中断时会触发 touchcancel 事件,中断方式基于特定实现而有所不同(例如,创建了太多的触摸点)。

    diff --git a/files/zh-cn/web/api/element/wheel_event/index.html b/files/zh-cn/web/api/element/wheel_event/index.html index bc56d32edc7a7c..86cdc899a2c4c1 100644 --- a/files/zh-cn/web/api/element/wheel_event/index.html +++ b/files/zh-cn/web/api/element/wheel_event/index.html @@ -243,9 +243,9 @@

    deltaMode 值

    WM_MOUSEWHEEL (竖直方向的滚动事件)
    deltaMode 值可以是 DOM_DELTA_LINE 或 DOM_DELTA_PAGE。它取决于 Windows 的用户设置 (默认设置为 DOM_DELTA_LINE)。
    WM_MOUSEHWHEEL (水平方向的滚动事件)
    -
    deltaMode 值可以是 DOM_DELTA_LINE 或 DOM_DELTA_PAGE。然而 Windows 的滚轮速度设置界面和鼠标驱动工具都没有提供改为 page scroll 的选项。 所以这个值通常为 DOM_DELTA_LINE.
    +
    deltaMode 值可以是 DOM_DELTA_LINE 或 DOM_DELTA_PAGE。然而 Windows 的滚轮速度设置界面和鼠标驱动工具都没有提供改为 page scroll 的选项。所以这个值通常为 DOM_DELTA_LINE.
    WM_GESTURE (Only when caused by panning)
    -
    deltaMode 值总是 DOM_DELTA_PIXEL。但请注意大多数笔记本的触摸板都在模拟鼠标滚轮事件而不是调用这个事件, WM_GESTURE 事件通常被平板电脑使用。
    +
    deltaMode 值总是 DOM_DELTA_PIXEL。但请注意大多数笔记本的触摸板都在模拟鼠标滚轮事件而不是调用这个事件,WM_GESTURE 事件通常被平板电脑使用。

    在 Mac 下 deltaMode 值由设备决定。如果设备支持高分辨率像素级滚动,deltaMode 值就是典型的 DOM_DELTA_PIXEL. 然而用户可以通过加前缀"mousewheel.enable_pixel_scrolling"将其改变为 DOM_DELTA_LINE 。如果设备不支持高分辨率滚动,那么 deltaModel 值将一直为 DOM_DELTA_LINE.

    diff --git a/files/zh-cn/web/api/event/currenttarget/index.html b/files/zh-cn/web/api/event/currenttarget/index.html index f9556ecdbab14f..dec158c33db173 100644 --- a/files/zh-cn/web/api/event/currenttarget/index.html +++ b/files/zh-cn/web/api/event/currenttarget/index.html @@ -28,7 +28,7 @@

    例子

    function hide(e){
       e.currentTarget.style.visibility = "hidden";
       console.log(e.currentTarget);
    -  // 该函数用作事件处理器时: this === e.currentTarget
    +  // 该函数用作事件处理器时:this === e.currentTarget
     }
     
     var ps = document.getElementsByTagName('p');
    diff --git a/files/zh-cn/web/api/event/event/index.html b/files/zh-cn/web/api/event/event/index.html
    index c95774a9c30d79..4e621d112260a6 100644
    --- a/files/zh-cn/web/api/event/event/index.html
    +++ b/files/zh-cn/web/api/event/event/index.html
    @@ -29,7 +29,7 @@ 

    参数

    • "bubbles",可选,{{jsxref("Boolean")}}类型,默认值为 false,表示该事件是否冒泡。
    • -
    • "cancelable",可选,{{jsxref("Boolean")}}类型,默认值为 false, 表示该事件能否被取消。
    • +
    • "cancelable",可选,{{jsxref("Boolean")}}类型,默认值为 false,表示该事件能否被取消。
    • "composed",可选,{{jsxref("Boolean")}}类型,默认值为 false,指示事件是否会在影子 DOM 根节点之外触发侦听器。
    diff --git a/files/zh-cn/web/api/event/eventphase/index.html b/files/zh-cn/web/api/event/eventphase/index.html index 7d2c159300c1d4..649ab76efc4549 100644 --- a/files/zh-cn/web/api/event/eventphase/index.html +++ b/files/zh-cn/web/api/event/eventphase/index.html @@ -37,12 +37,12 @@

    下面这些

    - + - + diff --git a/files/zh-cn/web/api/event/originaltarget/index.html b/files/zh-cn/web/api/event/originaltarget/index.html index eaaddfb2b4e40a..f1842245d66ff1 100644 --- a/files/zh-cn/web/api/event/originaltarget/index.html +++ b/files/zh-cn/web/api/event/originaltarget/index.html @@ -11,7 +11,7 @@

    简介

    -

    original target 是事件重定向之前的原始目标. (Mozilla-特有)

    +

    original target 是事件重定向之前的原始目标。(Mozilla-特有)

    在 XBL 的匿名内容中,这将是该事件最初触发的匿名节点。看到匿名的内容。查看Anonymous Content#Event_Flow_and_Targeting 获取更多细节。

    diff --git a/files/zh-cn/web/api/eventsource/eventsource/index.html b/files/zh-cn/web/api/eventsource/eventsource/index.html index 4ec970a9e7e07c..8ac6387c6ec481 100644 --- a/files/zh-cn/web/api/eventsource/eventsource/index.html +++ b/files/zh-cn/web/api/eventsource/eventsource/index.html @@ -31,7 +31,7 @@

    参数

    返回值

    -

     一个新建的 {{domxref("EventSource")}} 对象,如果指定了configuration, 则按其配置;否则,配置为合适的基本默认值。

    +

     一个新建的 {{domxref("EventSource")}} 对象,如果指定了configuration,则按其配置;否则,配置为合适的基本默认值。

    diff --git a/files/zh-cn/web/api/eventtarget/addeventlistener/index.html b/files/zh-cn/web/api/eventtarget/addeventlistener/index.html index bdf0d865ed9555..f0e1a6ca6e72a5 100644 --- a/files/zh-cn/web/api/eventtarget/addeventlistener/index.html +++ b/files/zh-cn/web/api/eventtarget/addeventlistener/index.html @@ -14,7 +14,7 @@ ---

    {{APIRef("DOM Events")}}

    -

    EventTarget.addEventListener() 方法将指定的监听器注册到 {{domxref("EventTarget")}} 上,当该对象触发指定的事件时,指定的回调函数就会被执行。 事件目标可以是一个文档上的元素 {{domxref("Element")}},{{domxref("Document")}}和{{domxref("Window")}}或者任何其他支持事件的对象 (比如 XMLHttpRequest)

    +

    EventTarget.addEventListener() 方法将指定的监听器注册到 {{domxref("EventTarget")}} 上,当该对象触发指定的事件时,指定的回调函数就会被执行。事件目标可以是一个文档上的元素 {{domxref("Element")}},{{domxref("Document")}}和{{domxref("Window")}}或者任何其他支持事件的对象 (比如 XMLHttpRequest)

    addEventListener()的工作原理是将实现{{domxref("EventListener")}}的函数或对象添加到调用它的{{domxref("EventTarget")}}上的指定事件类型的事件侦听器列表中。

    @@ -45,7 +45,7 @@

    参数

    useCapture  {{optional_inline}}
    -
    {{jsxref("Boolean")}},在 DOM 树中,注册了 listener 的元素, 是否要先于它下面的 EventTarget,调用该 listener。 当 useCapture(设为 true) 时,沿着 DOM 树向上冒泡的事件,不会触发 listener。当一个元素嵌套了另一个元素,并且两个元素都对同一事件注册了一个处理函数时,所发生的事件冒泡和事件捕获是两种不同的事件传播方式。事件传播模式决定了元素以哪个顺序接收事件。进一步的解释可以查看 事件流 及 JavaScript Event order 文档。 如果没有指定, useCapture 默认为 false 。 
    +
    {{jsxref("Boolean")}},在 DOM 树中,注册了 listener 的元素,是否要先于它下面的 EventTarget,调用该 listener。 当 useCapture(设为 true) 时,沿着 DOM 树向上冒泡的事件,不会触发 listener。当一个元素嵌套了另一个元素,并且两个元素都对同一事件注册了一个处理函数时,所发生的事件冒泡和事件捕获是两种不同的事件传播方式。事件传播模式决定了元素以哪个顺序接收事件。进一步的解释可以查看 事件流 及 JavaScript Event order 文档。如果没有指定, useCapture 默认为 false。 
    注意: 对于事件目标上的事件监听器来说,事件会处于“目标阶段”,而不是冒泡阶段或者捕获阶段。在目标阶段的事件会触发该元素(即事件目标)上的所有监听器,而不在乎这个监听器到底在注册时useCapture 参数值是 true 还是 false。
    @@ -328,7 +328,7 @@

    为什

    addEventListener() 是 W3C DOM 规范中提供的注册事件监听器的方法。它的优点包括:

      -
    • 它允许给一个事件注册多个监听器。 特别是在使用{{Glossary("AJAX")}}库,JavaScript 模块,或其他需要第三方库/插件的代码。
    • +
    • 它允许给一个事件注册多个监听器。特别是在使用{{Glossary("AJAX")}}库,JavaScript 模块,或其他需要第三方库/插件的代码。
    • 它提供了一种更精细的手段控制 listener 的触发阶段。(即可以选择捕获或者冒泡)。
    • 它对任何 DOM 元素都是有效的,而不仅仅只对 HTML 元素有效。
    @@ -349,7 +349,7 @@

    严格模式中为 undefined)

    -
    注意: JavaScript 1.8.5 引入了Function.prototype.bind() 方法,允许制定函数调用时的 this 的值。这使得想要绕开由于调用情况不同,this 取值不同的问题变得十分容易 。然而请注意,你应该保留一个 listener 的引用,以便在未来需要的时候能够比较好地移除。
    +
    注意: JavaScript 1.8.5 引入了Function.prototype.bind() 方法,允许制定函数调用时的 this 的值。这使得想要绕开由于调用情况不同,this 取值不同的问题变得十分容易。然而请注意,你应该保留一个 listener 的引用,以便在未来需要的时候能够比较好地移除。

    下面是 bind 相关的例子:

    @@ -452,9 +452,9 @@

    传统的 Internet Explorer 及其 

    兼容性

    -

    在你的 script 的开头添加以下方法,你就可以使用以下如 addEventListenerremoveEventListenerEvent.preventDefault 和Event.stopPropagation 等不被 IE8 支持的方法。 这些代码支持 handleEvent 的使用 ,包含 DOMContentLoaded 事件。

    +

    在你的 script 的开头添加以下方法,你就可以使用以下如 addEventListenerremoveEventListenerEvent.preventDefault 和Event.stopPropagation 等不被 IE8 支持的方法。 这些代码支持 handleEvent 的使用,包含 DOMContentLoaded 事件。

    -
    Note: IE8 不具有任何替代 useCapture 的方法,useCapture 是 IE8 不支持的。 请注意下面的代码只能添加 IE8。另外请注意,下面这个 IE8 polyfill 只适用于标准模式:需要 DOCTYPE 声明。
    +
    Note: IE8 不具有任何替代 useCapture 的方法,useCapture 是 IE8 不支持的。请注意下面的代码只能添加 IE8。另外请注意,下面这个 IE8 polyfill 只适用于标准模式:需要 DOCTYPE 声明。
    (function() {
       if (!Event.prototype.preventDefault) {
    diff --git a/files/zh-cn/web/api/eventtarget/dispatchevent/index.html b/files/zh-cn/web/api/eventtarget/dispatchevent/index.html
    index 9c12a36562909e..52bd7c3644f3dc 100644
    --- a/files/zh-cn/web/api/eventtarget/dispatchevent/index.html
    +++ b/files/zh-cn/web/api/eventtarget/dispatchevent/index.html
    @@ -29,7 +29,7 @@ 

    返回值

  • 当该事件是可取消的 (cancelable 为 true) 并且至少一个该事件的 事件处理方法 调用了{{domxref("Event.preventDefault()")}},则返回值为false;否则返回true
  • -

    如果该被派发的事件的事件类型 (event's type) 在方法调用之前没有被经过初始化被指定,就会抛出一个 UNSPECIFIED_EVENT_TYPE_ERR 异常,或者如果事件类型是null或一个空字符串. event handler 就会抛出未捕获的异常; 这些 event handlers 运行在一个嵌套的调用栈中: 他们会阻塞调用直到他们处理完毕,但是异常不会冒泡。

    +

    如果该被派发的事件的事件类型 (event's type) 在方法调用之前没有被经过初始化被指定,就会抛出一个 UNSPECIFIED_EVENT_TYPE_ERR 异常,或者如果事件类型是null或一个空字符串。event handler 就会抛出未捕获的异常;这些 event handlers 运行在一个嵌套的调用栈中:他们会阻塞调用直到他们处理完毕,但是异常不会冒泡。

    注意

    diff --git a/files/zh-cn/web/api/eventtarget/index.html b/files/zh-cn/web/api/eventtarget/index.html index 1700a0aefe6291..df837b7b1c628e 100644 --- a/files/zh-cn/web/api/eventtarget/index.html +++ b/files/zh-cn/web/api/eventtarget/index.html @@ -12,9 +12,9 @@

    EventTarget 是一个 DOM 接口,由可以接收事件、并且可以创建侦听器的对象实现。

    -

    {{domxref("Element")}},{{domxref("document")}} 和 {{domxref("window")}} 是最常见的 event targets ,但是其他对象也可以作为 event targets,比如 {{domxref("XMLHttpRequest")}},{{domxref("AudioNode")}},{{domxref("AudioContext")}}  等等。

    +

    {{domxref("Element")}},{{domxref("document")}} 和 {{domxref("window")}} 是最常见的 event targets,但是其他对象也可以作为 event targets,比如 {{domxref("XMLHttpRequest")}},{{domxref("AudioNode")}},{{domxref("AudioContext")}}  等等。

    -

    许多 event targets(包括 elements, documents 和 windows)支持通过 onevent 特性和属性设置事件处理程序 (event handlers)。

    +

    许多 event targets(包括 elements,documents 和 windows)支持通过 onevent 特性和属性设置事件处理程序 (event handlers)。

    {{InheritanceDiagram}}

    diff --git a/files/zh-cn/web/api/ext_float_blend/index.html b/files/zh-cn/web/api/ext_float_blend/index.html index e804746e41f81f..fa252f42437500 100644 --- a/files/zh-cn/web/api/ext_float_blend/index.html +++ b/files/zh-cn/web/api/ext_float_blend/index.html @@ -18,11 +18,11 @@

    可用性:该扩展在 {{domxref("WebGLRenderingContext", "WebGL1")}} 和{{domxref("WebGL2RenderingContext", "WebGL2")}} 上下文中均存在。但是,要使用它,你需要启用对 32 位浮点绘制缓冲区的使用{{domxref("WEBGL_color_buffer_float")}}(for WebGL1)或 {{domxref("EXT_color_buffer_float")}}(WebGL2)。通过启用 32 位浮点缓冲区扩展,将自动启用EXT_float_blend

    -

    该组件启用后, 使用 32 位浮点数混合方式绘制,调用 {{domxref("WebGLRenderingContext.drawArrays", "drawArrays()")}} 或 {{domxref("WebGLRenderingContext.drawElements", "drawElements()")}} 时,将不再产生 INVALID_OPERATION 异常。

    +

    该组件启用后,使用 32 位浮点数混合方式绘制,调用 {{domxref("WebGLRenderingContext.drawArrays", "drawArrays()")}} 或 {{domxref("WebGLRenderingContext.drawElements", "drawElements()")}} 时,将不再产生 INVALID_OPERATION 异常。

    使用说明

    -

    在支持 EXT_float_blend 扩展的设备上,当以下几种有一种或几种扩展启用时{{domxref("EXT_color_buffer_float")}}, {{domxref("OES_texture_float")}}, 或 {{domxref("WEBGL_color_buffer_float")}},该扩展将会自动、隐式的启用。 这确保了在该扩展定义之前的内容也都能够按照预期正确执行。

    +

    在支持 EXT_float_blend 扩展的设备上,当以下几种有一种或几种扩展启用时{{domxref("EXT_color_buffer_float")}}, {{domxref("OES_texture_float")}}, 或 {{domxref("WEBGL_color_buffer_float")}},该扩展将会自动、隐式的启用。这确保了在该扩展定义之前的内容也都能够按照预期正确执行。

    例子

    diff --git a/files/zh-cn/web/api/gamepad/index.html b/files/zh-cn/web/api/gamepad/index.html index f6c19b9856708a..5d239c9338da84 100644 --- a/files/zh-cn/web/api/gamepad/index.html +++ b/files/zh-cn/web/api/gamepad/index.html @@ -44,7 +44,7 @@

    Gamepad 的实验性扩展

    示例

    window.addEventListener("gamepadconnected", function(e) {
    -  console.log("控制器已连接与 %d 位: %s. %d 个按钮,%d 个坐标方向。",
    +  console.log("控制器已连接与 %d 位:%s. %d 个按钮,%d 个坐标方向。",
       e.gamepad.index, e.gamepad.id,
       e.gamepad.buttons.length, e.gamepad.axes.length);
     });
    diff --git a/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.html b/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.html index b2baaff912c15f..b0656870654e70 100644 --- a/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.html +++ b/files/zh-cn/web/api/gamepad_api/using_the_gamepad_api/index.html @@ -28,7 +28,7 @@

    连接控制器

    你可以这样使用 {{ event("gamepadconnected") }} :

    window.addEventListener("gamepadconnected", function(e) {
    -  console.log("控制器已连接于 %d 位: %s. %d 个按钮,%d 个坐标方向。",
    +  console.log("控制器已连接于 %d 位:%s. %d 个按钮,%d 个坐标方向。",
         e.gamepad.index, e.gamepad.id,
         e.gamepad.buttons.length, e.gamepad.axes.length);
     });
    @@ -41,7 +41,7 @@ 

    断开控制器连接

    当控制器断开连接时,如果页面以前接收过该手柄的数据 (例如 {{ event("gamepadconnected") }}),那么第二个事件 {{ event("gamepaddisconnected") }} 将会分配至焦点页面:

    window.addEventListener("gamepaddisconnected", function(e) {
    -  console.log("控制器已从 %d 位断开: %s",
    +  console.log("控制器已从 %d 位断开:%s",
         e.gamepad.index, e.gamepad.id);
     });
    @@ -79,7 +79,7 @@

    查询 Gamepad 对象

    window.addEventListener("gamepadconnected", function(e) {
       var gp = navigator.getGamepads()[e.gamepad.index];
    -  console.log("控制器已连接于 %d 位: %s. %d 个按钮,%d 个坐标方向。",
    +  console.log("控制器已连接于 %d 位:%s. %d 个按钮,%d 个坐标方向。",
         gp.index, gp.id,
         gp.buttons.length, gp.axes.length);
     });
    @@ -194,7 +194,7 @@

    使用按键信息

    使用坐标方向 (axes) 信息

    -

    待讨论 (除了一个用 axes[i] 一个用 button[i].value ,其他基本一样,Firefox 与 Chrome 均是。)

    +

    待讨论 (除了一个用 axes[i] 一个用 button[i].value,其他基本一样,Firefox 与 Chrome 均是。)

    完整的例子:显示控制器状态

    diff --git a/files/zh-cn/web/api/geolocation/watchposition/index.html b/files/zh-cn/web/api/geolocation/watchposition/index.html index 2f8c20f5ec267f..020eb99265d9ee 100644 --- a/files/zh-cn/web/api/geolocation/watchposition/index.html +++ b/files/zh-cn/web/api/geolocation/watchposition/index.html @@ -19,7 +19,7 @@

    参数

    success
    成功时候的回调函数, 同时传入一个 {{domxref("Position")}} 对象当作参数。
    error {{optional_inline}}
    -
    失败时候的回调函数,可选, 会传入一个 {{domxref("PositionError")}} 对象当作参数。
    +
    失败时候的回调函数,可选,会传入一个 {{domxref("PositionError")}} 对象当作参数。
    options {{optional_inline}}
    一个可选的 {{domxref("PositionOptions")}} 对象。
    diff --git a/files/zh-cn/web/api/geolocationposition/index.html b/files/zh-cn/web/api/geolocationposition/index.html index 768ee67d6fdf9d..41bec8d999fbfc 100644 --- a/files/zh-cn/web/api/geolocationposition/index.html +++ b/files/zh-cn/web/api/geolocationposition/index.html @@ -9,7 +9,7 @@ ---
    {{APIRef("Geolocation API")}}
    -

    Position  接口表示在给定的时间的相关设备的位置。这个位置,用一个{{domxref("Coordinates")}}对象表示,包括设备在地球上的二维位置, 但也可以包括设备的海拔和速度。      

    +

    Position  接口表示在给定的时间的相关设备的位置。这个位置,用一个{{domxref("Coordinates")}}对象表示,包括设备在地球上的二维位置,但也可以包括设备的海拔和速度。      

    属性

    @@ -19,7 +19,7 @@

    属性

    {{domxref("Position.coords")}} {{readonlyInline}}
    返回一个定义了当前位置的{{domxref("Coordinates")}} 对象。
    {{domxref("Position.timestamp")}} {{readonlyInline}}
    -
    返回一个时间戳{{domxref("DOMTimeStamp")}}, 这个时间戳表示获取到的位置的时间。
    +
    返回一个时间戳{{domxref("DOMTimeStamp")}},这个时间戳表示获取到的位置的时间。

    方法

    diff --git a/files/zh-cn/web/api/globaleventhandlers/onanimationend/index.html b/files/zh-cn/web/api/globaleventhandlers/onanimationend/index.html index baff2365d46424..63d877ec403232 100644 --- a/files/zh-cn/web/api/globaleventhandlers/onanimationend/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/onanimationend/index.html @@ -5,7 +5,7 @@ ---

    概述

    -

    事件处理程序。 当 CSS 动画到达其活动期的结束时发送此事件

    +

    事件处理程序。当 CSS 动画到达其活动期的结束时发送此事件

    语法

    @@ -16,7 +16,7 @@

    语法

    -

    target(HTML 元素, document 或者 window) 的 CSS 动画已经开始,{{event("animationend")}}事件会触发同时事件处理函数会被调用。事件处理函数会接收到唯一的参数:{{domxref("AnimationEvent")}} 描述发生的事件。

    +

    target(HTML 元素,document 或者 window) 的 CSS 动画已经开始,{{event("animationend")}}事件会触发同时事件处理函数会被调用。事件处理函数会接收到唯一的参数:{{domxref("AnimationEvent")}} 描述发生的事件。

    例子

    diff --git a/files/zh-cn/web/api/globaleventhandlers/onanimationiteration/index.html b/files/zh-cn/web/api/globaleventhandlers/onanimationiteration/index.html index 04ada67115864e..04ae8d75ab7e16 100644 --- a/files/zh-cn/web/api/globaleventhandlers/onanimationiteration/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/onanimationiteration/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("CSS3 Animations")}}
    -

     {{event("animationiteration")}}事件的处理器 . 当 CSS Animation 运动到最后一帧时触发。 An iteration ends when a single pass through the sequence of animation instructions is completed by executing the last animation step.

    +

     {{event("animationiteration")}}事件的处理器 . 当 CSS Animation 运动到最后一帧时触发。An iteration ends when a single pass through the sequence of animation instructions is completed by executing the last animation step.

    语法

    diff --git a/files/zh-cn/web/api/globaleventhandlers/onclose/index.html b/files/zh-cn/web/api/globaleventhandlers/onclose/index.html index 1faaa5925a101b..d0895ceee0d0e7 100644 --- a/files/zh-cn/web/api/globaleventhandlers/onclose/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/onclose/index.html @@ -29,9 +29,9 @@

    语法

    参数

    -

    functionRef 是一个函数名称或 函数表达式。 该函数接受一个 {{domxref("Event")}} 对象作为它唯一的参数。

    +

    functionRef 是一个函数名称或 函数表达式。该函数接受一个 {{domxref("Event")}} 对象作为它唯一的参数。

    -

    每次只能给一个对象添加 onclose 回调。 你可能更喜欢使用 {{domxref("EventTarget.addEventListener()")}} 方法,因为它更加灵活。

    +

    每次只能给一个对象添加 onclose 回调。你可能更喜欢使用 {{domxref("EventTarget.addEventListener()")}} 方法,因为它更加灵活。

    规范

    diff --git a/files/zh-cn/web/api/globaleventhandlers/oncontextmenu/index.html b/files/zh-cn/web/api/globaleventhandlers/oncontextmenu/index.html index 179a7e59e8d47e..6883ed06a6e6de 100644 --- a/files/zh-cn/web/api/globaleventhandlers/oncontextmenu/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/oncontextmenu/index.html @@ -13,7 +13,7 @@

    oncontextmenu 是用来设置或获取全局事件 ({{domxref("GlobalEventHandlers")}}) 中 上下文菜单事件 ({{event("contextmenu")}}) 的处理函数 ({{event("Event_handlers", "event handler")}})。

    -

    当在窗口上单击鼠标右键时,通常会触发 contextmenu 事件。 除非阻止默认行为,否则浏览器上下文菜单将被激活。

    +

    当在窗口上单击鼠标右键时,通常会触发 contextmenu 事件。除非阻止默认行为,否则浏览器上下文菜单将被激活。

    语法

    @@ -23,9 +23,9 @@

    语法

    属性值

    functionRef 是一个函数名 或者是一个 函数表达式。 该函数接收 {{domxref("Event")}} 作为唯一参数。

    + href="/en-US/docs/Web/JavaScript/Reference/Operators/function">函数表达式。该函数接收 {{domxref("Event")}} 作为唯一参数。

    -

    一次只能将一个 oncontextmenu 处理函数分配给一个对象。 你可能更喜欢使用 {{domxref("EventTarget.addEventListener()")}} 作为替代, +

    一次只能将一个 oncontextmenu 处理函数分配给一个对象。你可能更喜欢使用 {{domxref("EventTarget.addEventListener()")}} 作为替代, 因为这种方式更加灵活。

    示例

    diff --git a/files/zh-cn/web/api/globaleventhandlers/oninput/index.html b/files/zh-cn/web/api/globaleventhandlers/oninput/index.html index 71932fa42b8e7e..44437168aca2fe 100644 --- a/files/zh-cn/web/api/globaleventhandlers/oninput/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/oninput/index.html @@ -8,7 +8,7 @@ ---
    {{ ApiRef("HTML DOM") }}
    -

    {{domxref("GlobalEventHandlers")}}mixin 的oninput属性是{{event("Event_handlers", "event handler")}},它处理{{HTMLElement("input")}},{{HTMLElement("select")}}和 {{HTMLElement("textarea")}} 元素上的 {{event("input")}} 事件。 它还会在{{domxref("HTMLElement.contentEditable", "contenteditable")}} 或 {{domxref("Document.designMode", "designMode")}}打开的元素上处理这些事件。

    +

    {{domxref("GlobalEventHandlers")}}mixin 的oninput属性是{{event("Event_handlers", "event handler")}},它处理{{HTMLElement("input")}},{{HTMLElement("select")}}和 {{HTMLElement("textarea")}} 元素上的 {{event("input")}} 事件。它还会在{{domxref("HTMLElement.contentEditable", "contenteditable")}} 或 {{domxref("Document.designMode", "designMode")}}打开的元素上处理这些事件。

    注意:与oninput不同的是, {{domxref("GlobalEventHandlers.onchange", "onchange")}} 事件处理程序不一定会针对元素值的每次更改而调用。

    diff --git a/files/zh-cn/web/api/globaleventhandlers/oninvalid/index.html b/files/zh-cn/web/api/globaleventhandlers/oninvalid/index.html index c7b61a02ba6c50..c752ee6045a131 100644 --- a/files/zh-cn/web/api/globaleventhandlers/oninvalid/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/oninvalid/index.html @@ -13,7 +13,7 @@

    {{domxref("GlobalEventHandlers")}} 混合的oninvalid属性 是 {{event("Event_handlers", "event handler")}} 处理{{event("invalid")}} 事件。

    -

    invalid 事件被触发当一个从属元素被勾选 checked 并且与之前的选中方式不同。 有效的从属元素在表单之前被选中,或者在 checkValidity() 方法之后它自己的表单被调用。

    +

    invalid 事件被触发当一个从属元素被勾选 checked 并且与之前的选中方式不同。有效的从属元素在表单之前被选中,或者在 checkValidity() 方法之后它自己的表单被调用。

    语法

    diff --git a/files/zh-cn/web/api/globaleventhandlers/onload/index.html b/files/zh-cn/web/api/globaleventhandlers/onload/index.html index 4708b38db2ccb5..55a8b310e02bd7 100644 --- a/files/zh-cn/web/api/globaleventhandlers/onload/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/onload/index.html @@ -62,7 +62,7 @@

    注意

    在文档装载完成后会触发  load 事件。此时,在文档中的所有对象都在 DOM 中,所有图片,脚本,链接以及子框都完成了装载。 

    -

    同时也会有 Gecko-指定 DOM 事件,如 DOMContentLoaded 和 DOMFrameContentLoaded (它们可以使用 {{ domxref("EventTarget.addEventListener()") }} 来处理 ) , 这些事件在页面 DOM 构建起来后就会触发,而不会等到其他的资源都装载完成。 

    +

    同时也会有 Gecko-指定 DOM 事件,如 DOMContentLoaded 和 DOMFrameContentLoaded (它们可以使用 {{ domxref("EventTarget.addEventListener()") }} 来处理 ) ,这些事件在页面 DOM 构建起来后就会触发,而不会等到其他的资源都装载完成。 

    规范

    diff --git a/files/zh-cn/web/api/globaleventhandlers/ontransitioncancel/index.html b/files/zh-cn/web/api/globaleventhandlers/ontransitioncancel/index.html index dcbed5ff69f66a..b3b94b3f927017 100644 --- a/files/zh-cn/web/api/globaleventhandlers/ontransitioncancel/index.html +++ b/files/zh-cn/web/api/globaleventhandlers/ontransitioncancel/index.html @@ -8,7 +8,7 @@

    {{domxref("GlobalEventHandlers")}}混合 的 ontransitioncancel  属性 是处理 {{event("transitioncancel")}} 事件的手柄{{event("Event_handlers", "event handler")}}.

    -

    domxref("GlobalEventHandlers") 与 event("Event_handlers", "event handler"): dom 修订版本的事件手柄。

    +

    domxref("GlobalEventHandlers") 与 event("Event_handlers", "event handler"):dom 修订版本的事件手柄。

    event("transitioncancel"):transitioncancel 事件

    diff --git a/files/zh-cn/web/api/headers/index.html b/files/zh-cn/web/api/headers/index.html index 06ef13861b800e..fc06bfd0ba5af5 100644 --- a/files/zh-cn/web/api/headers/index.html +++ b/files/zh-cn/web/api/headers/index.html @@ -14,7 +14,7 @@

    出于安全考虑,某些头只能由用户代理控制。这些头信息包括 {{Glossary("Forbidden_header_name", "forbidden header names", 1)}}  和 {{Glossary("Forbidden_response_header_name", "forbidden response header names", 1)}}。

    -

    一个 Headers 对象也有一个关联的 guard,它具有不可变的值,requestrequest-no-corsresponsenone。 这会影响 {{domxref("Headers.set","set()")}}, {{domxref("Headers.delete","delete()")}}, 和{{domxref("Headers.append","append()")}} 方法 改变 header. 参考更多信息,请看 {{Glossary("Guard")}}.

    +

    一个 Headers 对象也有一个关联的 guard,它具有不可变的值,requestrequest-no-corsresponsenone。这会影响 {{domxref("Headers.set","set()")}}, {{domxref("Headers.delete","delete()")}}, 和{{domxref("Headers.append","append()")}} 方法 改变 header. 参考更多信息,请看 {{Glossary("Guard")}}.

    你可以通过 {{domxref("Request.headers")}} 和{{domxref("Response.headers")}} 属性检索一个Headers对象,并使用 {{domxref("Headers.Headers()")}} 构造函数创建一个新的Headers 对象。

    @@ -57,7 +57,7 @@

    方法

    -

    Note:如果您尝试传入名称不是有效的 HTTP 头名称的引用,则所有 Headers 方法都将引发 TypeError 。 如果头部有一个不变的{{Glossary("Guard")}},则变异操作将会抛出一个 TypeError 。 在其他任何失败的情况下,他们默默地失败。

    +

    Note:如果您尝试传入名称不是有效的 HTTP 头名称的引用,则所有 Headers 方法都将引发 TypeError 。如果头部有一个不变的{{Glossary("Guard")}},则变异操作将会抛出一个 TypeError 。在其他任何失败的情况下,他们默默地失败。

    Obsolete methods

    diff --git a/files/zh-cn/web/api/history/index.html b/files/zh-cn/web/api/history/index.html index 261a7e897f1dde..f923f61df99bf4 100644 --- a/files/zh-cn/web/api/history/index.html +++ b/files/zh-cn/web/api/history/index.html @@ -34,10 +34,10 @@

    方法

    Note: 当浏览器历史栈处于最顶端时 ( 当前页面处于最后一页时 ) 调用此方法没有效果也不报错。
    {{domxref("History.go()")}}
    -
    通过当前页面的相对位置从浏览器历史记录 ( 会话记录 ) 加载页面。比如:参数为-1 的时候为上一页,参数为 1 的时候为下一页。当整数参数超出界限时 ( 译者注:原文为 When integerDelta is out of bounds ),例如:如果当前页为第一页,前面已经没有页面了,我传参的值为-1,那么这个方法没有任何效果也不会报错。调用没有参数的 go() 方法或者参数值为 0 时,重新载入当前页面。( 这点与支持字符串作为 url 参数的 IE 有点不同)。
    +
    通过当前页面的相对位置从浏览器历史记录 ( 会话记录 ) 加载页面。比如:参数为 -1 的时候为上一页,参数为 1 的时候为下一页。当整数参数超出界限时 ( 译者注:原文为 When integerDelta is out of bounds ),例如:如果当前页为第一页,前面已经没有页面了,我传参的值为 -1,那么这个方法没有任何效果也不会报错。调用没有参数的 go() 方法或者参数值为 0 时,重新载入当前页面。( 这点与支持字符串作为 url 参数的 IE 有点不同)。
    {{domxref("History.pushState()")}}
    按指定的名称和 URL(如果提供该参数)将数据 push 进会话历史栈,数据被 DOM 进行不透明处理;你可以指定任何可以被序列化的 javascript 对象。注意到 Firefox 现在忽略了这个 title 参数,更多的信息,请看manipulating the browser history。 -
    Note: 在 Gecko 2.0 {{ geckoRelease("2.0") }} 到 Gecko 5.0 {{ geckoRelease("5.0") }}中, 被传递的对象使用 JSON 进行序列化。从 Gecko 6.0 {{ geckoRelease("6.0") }}开始,使用结构化克隆算法进行序列化。这样,就可以让更多类型的对象被安全地传输。
    +
    Note: 在 Gecko 2.0 {{ geckoRelease("2.0") }} 到 Gecko 5.0 {{ geckoRelease("5.0") }}中,被传递的对象使用 JSON 进行序列化。从 Gecko 6.0 {{ geckoRelease("6.0") }}开始,使用结构化克隆算法进行序列化。这样,就可以让更多类型的对象被安全地传输。
    {{domxref("History.replaceState()")}}
    按指定的数据,名称和 URL(如果提供该参数),更新历史栈上最新的入口。这个数据被 DOM 进行了不透明处理。你可以指定任何可以被序列化的 javascript 对象。注意到 Firefox 现在忽略了这个 title 参数,更多的信息,请看manipulating the browser history。 diff --git a/files/zh-cn/web/api/history/pushstate/index.html b/files/zh-cn/web/api/history/pushstate/index.html index 66997d23f69ff3..28f2f19fa8d203 100644 --- a/files/zh-cn/web/api/history/pushstate/index.html +++ b/files/zh-cn/web/api/history/pushstate/index.html @@ -24,12 +24,12 @@

    参数

    state
    -
    状态对象是一个 JavaScript 对象,它与pushState()创建的新历史记录条目相关联。 每当用户导航到新状态时,都会触发{{event("popstate")}}事件,并且该事件的状态属性包含历史记录条目的状态对象的副本。
    -
    状态对象可以是任何可以序列化的对象。 因为 Firefox 将状态对象保存到用户的磁盘上,以便用户重新启动浏览器后可以将其还原,所以我们对状态对象的序列化表示施加了 2MiB 的大小限制。 如果将序列化表示形式大于此状态的状态对象传递给pushState(),则该方法将引发异常。 如果您需要更多空间,建议您使用 {{domxref("Window.sessionStorage", "sessionStorage")}}或者{{domxref("Window.localStorage", "localStorage")}}。
    +
    状态对象是一个 JavaScript 对象,它与pushState()创建的新历史记录条目相关联。每当用户导航到新状态时,都会触发{{event("popstate")}}事件,并且该事件的状态属性包含历史记录条目的状态对象的副本。
    +
    状态对象可以是任何可以序列化的对象。因为 Firefox 将状态对象保存到用户的磁盘上,以便用户重新启动浏览器后可以将其还原,所以我们对状态对象的序列化表示施加了 2MiB 的大小限制。如果将序列化表示形式大于此状态的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多空间,建议您使用 {{domxref("Window.sessionStorage", "sessionStorage")}}或者{{domxref("Window.localStorage", "localStorage")}}。
    title
    -
    当前大多数浏览器都忽略此参数,尽管将来可能会使用它。 在此处传递空字符串应该可以防止将来对方法的更改。 或者,您可以为要移动的状态传递简短的标题。
    +
    当前大多数浏览器都忽略此参数,尽管将来可能会使用它。在此处传递空字符串应该可以防止将来对方法的更改。或者,您可以为要移动的状态传递简短的标题。
    url {{optional_inline}}
    -
    新历史记录条目的 URL 由此参数指定。 请注意,浏览器不会在调用pushState() 之后尝试加载此 URL,但可能会稍后尝试加载 URL,例如在用户重新启动浏览器之后。 新的 URL 不必是绝对的。 如果是相对的,则相对于当前 URL 进行解析。 新网址必须与当前网址相同 {{glossary("origin")}}; 否则,pushState()将引发异常。 如果未指定此参数,则将其设置为文档的当前 URL。
    +
    新历史记录条目的 URL 由此参数指定。请注意,浏览器不会在调用pushState() 之后尝试加载此 URL,但可能会稍后尝试加载 URL,例如在用户重新启动浏览器之后。新的 URL 不必是绝对的。如果是相对的,则相对于当前 URL 进行解析。新网址必须与当前网址相同 {{glossary("origin")}};否则,pushState()将引发异常。如果未指定此参数,则将其设置为文档的当前 URL。

    描述

    diff --git a/files/zh-cn/web/api/history/state/index.html b/files/zh-cn/web/api/history/state/index.html index e0a24d0a27d028..b49109da6655d1 100644 --- a/files/zh-cn/web/api/history/state/index.html +++ b/files/zh-cn/web/api/history/state/index.html @@ -3,7 +3,7 @@ slug: Web/API/History/state translation_of: Web/API/History/state --- -

    返回在 history 栈顶的 任意 值的拷贝。 通过这种方式可以查看 state 值,不必等待 popstate事件发生后再查看。

    +

    返回在 history 栈顶的 任意 值的拷贝。通过这种方式可以查看 state 值,不必等待 popstate事件发生后再查看。

    语法

    diff --git a/files/zh-cn/web/api/history_api/index.html b/files/zh-cn/web/api/history_api/index.html index 472f00d47c7f18..9b203dd7ce1f4d 100644 --- a/files/zh-cn/web/api/history_api/index.html +++ b/files/zh-cn/web/api/history_api/index.html @@ -108,8 +108,8 @@

    pushState() 方法

            在某种意义上,调用 pushState() 与 设置 window.location = "#foo" 类似,二者都会在当前页面创建并激活新的历史记录。但 pushState() 具有如下几条优点:

      -
    • 新的 URL 可以是与当前 URL 同源的任意 URL 。相反,只有在修改哈希时,设置 window.location 才能是同一个 {{ domxref("document") }}。
    • -
    • 如果你不想改 URL,就不用改。相反,设置 window.location = "#foo";在当前哈希不是 #foo 时, 才能创建新的历史记录项。
    • +
    • 新的 URL 可以是与当前 URL 同源的任意 URL。相反,只有在修改哈希时,设置 window.location 才能是同一个 {{ domxref("document") }}。
    • +
    • 如果你不想改 URL,就不用改。相反,设置 window.location = "#foo";在当前哈希不是 #foo 时,才能创建新的历史记录项。
    • 你可以将任意数据和新的历史记录项相关联。而基于哈希的方式,要把所有相关数据编码为短字符串。 
    • 如果 标题 随后还会被浏览器所用到,那么这个数据是可以被使用的(哈希则不是)。
    @@ -122,7 +122,7 @@

    pushState() 方法

    replaceState() 方法

    -

    history.replaceState() 的使用与 history.pushState() 非常相似,区别在于  replaceState()  是修改了当前的历史记录项而不是新建一个。 注意这并不会阻止其在全局浏览器历史记录中创建一个新的历史记录项。

    +

    history.replaceState() 的使用与 history.pushState() 非常相似,区别在于  replaceState()  是修改了当前的历史记录项而不是新建一个。注意这并不会阻止其在全局浏览器历史记录中创建一个新的历史记录项。

    replaceState() 的使用场景在于为了响应用户操作,你想要更新状态对象 state 或者当前历史记录的 URL。

    @@ -160,7 +160,7 @@

    获取当前状态

            页面加载时,或许会有个非 null 的状态对象。这是有可能发生的,举个例子,假如页面(通过pushState() 或 replaceState() 方法)设置了状态对象而后用户重启了浏览器。那么当页面重新加载时,页面会接收一个 onload 事件,但没有 popstate 事件。然而,假如你读取了 history.state 属性,你将会得到如同 popstate 被触发时能得到的状态对象。

    -

    你可以读取当前历史记录项的状态对象 state,而不必等待popstate 事件, 只需要这样使用history.state 属性: 

    +

    你可以读取当前历史记录项的状态对象 state,而不必等待popstate 事件,只需要这样使用history.state 属性: 

      // 尝试通过 pushState 创建历史条目,然后再刷新页面查看 state 状态对象变化;
       window.addEventListener('load',() => {
    diff --git a/files/zh-cn/web/api/html_dom_api/microtask_guide/in_depth/index.html b/files/zh-cn/web/api/html_dom_api/microtask_guide/in_depth/index.html
    index 0ad716f7bdfda5..b6356c52386762 100644
    --- a/files/zh-cn/web/api/html_dom_api/microtask_guide/in_depth/index.html
    +++ b/files/zh-cn/web/api/html_dom_api/microtask_guide/in_depth/index.html
    @@ -32,7 +32,7 @@ 

    JavaScript 执行上下文

    • 全局上下文是为运行代码主体而创建的执行上下文,也就是说它是为那些存在于 JavaScript 函数之外的任何代码而创建的。
    • -
    • 每个函数会在执行的时候创建自己的执行上下文。这个上下文就是通常说的 “本地上下文”。
    • +
    • 每个函数会在执行的时候创建自己的执行上下文。这个上下文就是通常说的“本地上下文”。
    • 使用 {{jsxref("Global_Objects/eval", "eval()")}} 函数也会创建一个新的执行上下文。
    @@ -124,12 +124,12 @@

    事件循环(Event loops)

    Window 事件循环
    window 事件循环驱动所有同源的窗口 (though there are further limits to this as described elsewhere in this article XXXX ????).
    Worker 事件循环
    -
    worker 事件循环顾名思义就是驱动 worker 的事件循环。这包括了所有种类的 worker:最基本的 web worker 以及 shared worker 和 service worker。 Worker 被放在一个或多个独立于 “主代码” 的代理中。浏览器可能会用单个或多个事件循环来处理给定类型的所有 worker。
    +
    worker 事件循环顾名思义就是驱动 worker 的事件循环。这包括了所有种类的 worker:最基本的 web worker 以及 shared worker 和 service worker。Worker 被放在一个或多个独立于“主代码” 的代理中。浏览器可能会用单个或多个事件循环来处理给定类型的所有 worker。
    Worklet 事件循环
    worklet 事件循环用于驱动运行 worklet 的代理。这包含了 {{domxref("Worklet")}}、{{domxref("AudioWorklet")}} 以及 {{domxref("PaintWorklet")}}。
    -

    多个同{{Glossary("源")}}(译者注:此处同源的源应该不是指同源策略中的源,而是指由同一个窗口打开的多个子窗口或同一个窗口中的多个 iframe 等,意味着起源的意思,下一段内容就会对这里进行说明)窗口可能运行在相同的事件循环中,每个队列任务进入到事件循环中以便处理器能够轮流对它们进行处理。记住这里的网络术语 “window” 实际上指的用于运行网页内容的浏览器级容器,包括实际的 window,一个 tab 标签或者一个 frame。

    +

    多个同{{Glossary("源")}}(译者注:此处同源的源应该不是指同源策略中的源,而是指由同一个窗口打开的多个子窗口或同一个窗口中的多个 iframe 等,意味着起源的意思,下一段内容就会对这里进行说明)窗口可能运行在相同的事件循环中,每个队列任务进入到事件循环中以便处理器能够轮流对它们进行处理。记住这里的网络术语“window” 实际上指的用于运行网页内容的浏览器级容器,包括实际的 window,一个 tab 标签或者一个 frame。

    在特定情况下,同源窗口之间共享事件循环,例如:

    @@ -166,7 +166,7 @@

    解决方案

    微任务是另一种解决该问题的方案,通过将代码安排在下一次事件循环开始之前运行而不是必须要等到下一次开始之后才执行,这样可以提供一个更好的访问级别。

    -

    微任务队列已经存在有一段时间了,但之前它仅仅被内部使用来驱动诸如 promise 这些。queueMicrotask()的加入可以让开发者创建一个统一的微任务队列,它能够在任何时候即便是当 JavaScript 执行上下文栈中没有执行上下文剩余时也可以将代码安排在一个安全的时间运行。 在多个实例、所有浏览器以及运行时中,一个标准的微任务队列机制意味着这些微任务可以非常可靠的以相同的顺序执行,从而避免一些潜在的难以发现的错误。

    +

    微任务队列已经存在有一段时间了,但之前它仅仅被内部使用来驱动诸如 promise 这些。queueMicrotask()的加入可以让开发者创建一个统一的微任务队列,它能够在任何时候即便是当 JavaScript 执行上下文栈中没有执行上下文剩余时也可以将代码安排在一个安全的时间运行。在多个实例、所有浏览器以及运行时中,一个标准的微任务队列机制意味着这些微任务可以非常可靠的以相同的顺序执行,从而避免一些潜在的难以发现的错误。

    更多

    diff --git a/files/zh-cn/web/api/html_dom_api/microtask_guide/index.html b/files/zh-cn/web/api/html_dom_api/microtask_guide/index.html index ad800d9cbad411..0a416029433030 100644 --- a/files/zh-cn/web/api/html_dom_api/microtask_guide/index.html +++ b/files/zh-cn/web/api/html_dom_api/microtask_guide/index.html @@ -5,7 +5,7 @@ ---

    {{APIRef("HTML DOM")}}

    -

    一个 微任务(microtask)就是一个简短的函数,当创建该函数的函数执行之后,并且 只有当 Javascript 调用栈为空,而控制权尚未返还给被 {{Glossary("user agent")}} 用来驱动脚本执行环境的事件循环之前,该微任务才会被执行。 事件循环既可能是浏览器的主事件循环也可能是被一个 web worker 所驱动的事件循环。这使得给定的函数在没有其他脚本执行干扰的情况下运行,也保证了微任务能在用户代理有机会对该微任务带来的行为做出反应之前运行。

    +

    一个 微任务(microtask)就是一个简短的函数,当创建该函数的函数执行之后,并且 只有当 Javascript 调用栈为空,而控制权尚未返还给被 {{Glossary("user agent")}} 用来驱动脚本执行环境的事件循环之前,该微任务才会被执行。事件循环既可能是浏览器的主事件循环也可能是被一个 web worker 所驱动的事件循环。这使得给定的函数在没有其他脚本执行干扰的情况下运行,也保证了微任务能在用户代理有机会对该微任务带来的行为做出反应之前运行。

    JavaScript 中的 promisesMutation Observer API 都使用微任务队列去运行它们的回调函数,但当能够推迟工作直到当前事件循环过程完结时,也是可以执行微任务的时机。为了允许第三方库、框架、polyfills 能使用微任务,{{domxref("Window")}} 暴露了 {{domxref("WindowOrWorkerGlobalScope.queueMicrotask", "queueMicrotask()")}} 方法,而 {{domxref("Worker")}} 接口则通过{{domxref("WindowOrWorkerGlobalScope")}} mixin 提供了同名的 queueMicrotask() 方法。

    diff --git a/files/zh-cn/web/api/html_drag_and_drop_api/drag_operations/index.html b/files/zh-cn/web/api/html_drag_and_drop_api/drag_operations/index.html index 7fc9633acad4d7..0213845518c70c 100644 --- a/files/zh-cn/web/api/html_drag_and_drop_api/drag_operations/index.html +++ b/files/zh-cn/web/api/html_drag_and_drop_api/drag_operations/index.html @@ -42,7 +42,7 @@

    可拖拽(draggabl

    {{htmlattrxref("draggable")}} 属性可在任意元素上设置,包括图像和链接。然而,对于后两者,该属性的默认值是 true,所以你只会在禁用这二者的拖拽时使用到 {{htmlattrxref("draggable")}} 属性,将其设置为 false

    -

    注意:当一个元素被设置成可拖拽时, 元素中的文本和其他子元素不能再以正常的方式(通过鼠标点击和拖拽)被选中。用户必须按住 alt 键,再用鼠标选择文本,或者使用键盘选择。

    +

    注意:当一个元素被设置成可拖拽时,元素中的文本和其他子元素不能再以正常的方式(通过鼠标点击和拖拽)被选中。用户必须按住 alt 键,再用鼠标选择文本,或者使用键盘选择。

    开始拖拽操作

    @@ -63,7 +63,7 @@

    拖拽数据

    所有 {{domxref("DragEvent","拖拽事件")}} 都有一个名为 {{domxref("DragEvent.dataTransfer","dataTransfer")}} 的属性,它持有拖拽数据(dataTransfer 是一个 {{domxref("DataTransfer")}} 对象)。

    -

    当拖拽发生时,数据必须与被拖拽的项目相关联。例如,当在文本框中拖拽选定的文本时,与拖拽数据项相关联的数据就是文本本身。类似地,当在 Web 页面上拖拽链接时,拖拽数据项就是链接的 URL 。

    +

    当拖拽发生时,数据必须与被拖拽的项目相关联。例如,当在文本框中拖拽选定的文本时,与拖拽数据项相关联的数据就是文本本身。类似地,当在 Web 页面上拖拽链接时,拖拽数据项就是链接的 URL。

    {{domxref("DataTransfer","拖拽数据")}} 包含两个信息,数据的类型(或格式)和数据值。格式是一个类型字符串(例如文本数据的格式是 text/plain),值是一个文本字符串。拖拽开始时,你提供数据类型和数据值。在拖拽过程中,在 {{event("dragenter")}} 和 {{event("dragover")}} 事件监听程序中,你使用拖拽数据的类型来检查是否允许放置(drop)。例如,接受链接的放置目标将检查链接类型 text/uri-list。在放置事件中,监听程序将取回拖拽数据,并将其插入到放置位置。

    @@ -76,7 +76,7 @@

    拖拽数据

    event.dataTransfer.setData("text/plain", "Text to drag");
     
    -

    在这个例子中,数据值是 “Text to drag”,数据类型是 text/plain 格式。

    +

    在这个例子中,数据值是“Text to drag”,数据类型是 text/plain 格式。

    你可以提供多种格式的数据。要做到这一点,可以用不同的格式多次调用 {{domxref("DataTransfer.setData","setData()")}} 方法。你应该传入尽量具体的格式。

    diff --git a/files/zh-cn/web/api/html_drag_and_drop_api/file_drag_and_drop/index.html b/files/zh-cn/web/api/html_drag_and_drop_api/file_drag_and_drop/index.html index 5f22e7cc147642..21de750ad30043 100644 --- a/files/zh-cn/web/api/html_drag_and_drop_api/file_drag_and_drop/index.html +++ b/files/zh-cn/web/api/html_drag_and_drop_api/file_drag_and_drop/index.html @@ -9,7 +9,7 @@

    拖放的主要步骤是为 {{event("drop")}} 事件定义一个释放区(释放文件的目标元素) 和为{{event("dragover")}}事件定义一个事件处理程序。下面描述了这些步骤,包括示例程序片段。完整的源码在MDN's drag-and-drop repository (欢迎提交 pull requests 和/或 issues).

    -

    注意: {{domxref("HTML_Drag_and_Drop_API","HTML drag and drop")}}定义了两套不同的 API 来支持拖放文件。一个{{domxref("DataTransfer")}}接口和另一个{{domxref("DataTransferItem")}}与{{domxref("DataTransferItemList")}}接口。这个示例介绍了这两种 API 的用法 (没有使用任何 Gecko 专用的接口)。

    +

    注意:{{domxref("HTML_Drag_and_Drop_API","HTML drag and drop")}}定义了两套不同的 API 来支持拖放文件。一个{{domxref("DataTransfer")}}接口和另一个{{domxref("DataTransferItem")}}与{{domxref("DataTransferItemList")}}接口。这个示例介绍了这两种 API 的用法 (没有使用任何 Gecko 专用的接口)。

    定义拖放区域

    diff --git a/files/zh-cn/web/api/html_drag_and_drop_api/index.html b/files/zh-cn/web/api/html_drag_and_drop_api/index.html index f21bc7280f50e8..6dd204d0c270d6 100644 --- a/files/zh-cn/web/api/html_drag_and_drop_api/index.html +++ b/files/zh-cn/web/api/html_drag_and_drop_api/index.html @@ -96,11 +96,11 @@

    接口

    {{domxref("DataTransfer")}} 和 {{domxref("DataTransferItem")}} 接口的一个主要的不同是前者使用同步的 {{domxref("DataTransfer.getData","getData()")}} 方法去得到拖拽项的数据,而后者使用异步的 {{domxref("DataTransferItem.getAsString","getAsString()")}} 方法得到拖拽项的数据。

    -

    注意: {{domxref("DragEvent")}} 和 {{domxref("DataTransfer")}} 接口是所有桌面浏览器都支持的。但是, {{domxref("DataTransferItem")}} 和{{domxref("DataTransferItemList")}} 接口并不被所有浏览器支持。请移步 互操作性 了解更多关于拖拽行为的信息。

    +

    注意:{{domxref("DragEvent")}} 和 {{domxref("DataTransfer")}} 接口是所有桌面浏览器都支持的。但是, {{domxref("DataTransferItem")}} 和{{domxref("DataTransferItemList")}} 接口并不被所有浏览器支持。请移步 互操作性 了解更多关于拖拽行为的信息。

    Gecko 专用接口

    -

    Mozilla 和 Firefox 支持一些不在标准拖放模型中的特性。 它们是一些帮助实现拖拽多个项目和拖拽非文本内容(如文件)的便捷函数。想要了解更多信息,请参见 拖放多个项目。另外,请查看 {{domxref("DataTransfer")}} 参考页以获取所有 Gecko 专有属性Gecko 专有方法

    +

    Mozilla 和 Firefox 支持一些不在标准拖放模型中的特性。它们是一些帮助实现拖拽多个项目和拖拽非文本内容(如文件)的便捷函数。想要了解更多信息,请参见 拖放多个项目。另外,请查看 {{domxref("DataTransfer")}} 参考页以获取所有 Gecko 专有属性Gecko 专有方法

    基础

    diff --git a/files/zh-cn/web/api/html_drag_and_drop_api/recommended_drag_types/index.html b/files/zh-cn/web/api/html_drag_and_drop_api/recommended_drag_types/index.html index 8b62706504941a..3e155fc717f87b 100644 --- a/files/zh-cn/web/api/html_drag_and_drop_api/recommended_drag_types/index.html +++ b/files/zh-cn/web/api/html_drag_and_drop_api/recommended_drag_types/index.html @@ -11,7 +11,7 @@

    警告:
    - 本文档中包含一个moz前缀的所有方法和属性 (如mozSetDataAt()) 是 Gecko 的具体接口。 这些接口仅适用于基于 Gecko 的浏览器。

    + 本文档中包含一个moz前缀的所有方法和属性 (如mozSetDataAt()) 是 Gecko 的具体接口。这些接口仅适用于基于 Gecko 的浏览器。

    拖动文字

    @@ -21,11 +21,11 @@

    拖动文字

    event.dataTransfer.setData("text/plain", "This is text to drag")
     
    -

    拖动文本框中的文字和页面选中部分的文字是自动完成的, 所以你不需要手动处理这些拖动。

    +

    拖动文本框中的文字和页面选中部分的文字是自动完成的,所以你不需要手动处理这些拖动。

    如果应用和拖动目标不支持其它类型,推荐你使用 text/plain 类型的数据进行填充,否则将没有默认的替代文字。建议总是在最后添加原始文字类型的数据做为备选项(译者 plter 注:如果拖动开始时没有设置数据,则在有些浏览器中后续拖动相关事件可能不会触发)。

    -

    注:在旧代码中,可能会使用 text/unicode 或者 Text 类型, 这两个与 text/plain 是一样的,并且应该被替换用于存储和提取数据。

    +

    注:在旧代码中,可能会使用 text/unicode 或者 Text 类型,这两个与 text/plain 是一样的,并且应该被替换用于存储和提取数据。

    diff --git a/files/zh-cn/web/api/htmlanchorelement/download/index.html b/files/zh-cn/web/api/htmlanchorelement/download/index.html index c1a8d6c62fcbe8..c254cbba43e774 100644 --- a/files/zh-cn/web/api/htmlanchorelement/download/index.html +++ b/files/zh-cn/web/api/htmlanchorelement/download/index.html @@ -2,7 +2,7 @@ title: HTMLAnchorElement.download slug: Web/API/HTMLAnchorElement/download tags: - - HTML属性 + - HTML 属性 - 下载 translation_of: Web/API/HTMLAnchorElement/download --- diff --git a/files/zh-cn/web/api/htmlanchorelement/hash/index.html b/files/zh-cn/web/api/htmlanchorelement/hash/index.html index e60e1f5e4253e1..8add25348d24d6 100644 --- a/files/zh-cn/web/api/htmlanchorelement/hash/index.html +++ b/files/zh-cn/web/api/htmlanchorelement/hash/index.html @@ -8,9 +8,9 @@ ---

    {{ APIRef("URLUtils") }}

    -

    HTMLHyperlinkElementUtils.hash 属性返回一个包含“#”的 {{domxref("DOMString")}} , 后跟URL的片段标识符。

    +

    HTMLHyperlinkElementUtils.hash 属性返回一个包含“#”的 {{domxref("DOMString")}} , 后跟 URL 的片段标识符。

    -

    片段没有百分比解码。如果URL没有包含片段标识符,这个属性为一个空的字符串, "".

    +

    片段没有百分比解码。如果 URL 没有包含片段标识符,这个属性为一个空的字符串, "".

    Syntax

    diff --git a/files/zh-cn/web/api/htmlanchorelement/href/index.html b/files/zh-cn/web/api/htmlanchorelement/href/index.html index e344bc122a880d..ea5f54fd856396 100644 --- a/files/zh-cn/web/api/htmlanchorelement/href/index.html +++ b/files/zh-cn/web/api/htmlanchorelement/href/index.html @@ -8,7 +8,7 @@ ---

    {{ApiRef("URL API")}}

    -

    HTMLHyperlinkElementUtils.href 属性是一个包含整个URL的 {{domxref("USVString")}}。

    +

    HTMLHyperlinkElementUtils.href 属性是一个包含整个 URL 的 {{domxref("USVString")}}。

    Syntax

    diff --git a/files/zh-cn/web/api/htmlanchorelement/origin/index.html b/files/zh-cn/web/api/htmlanchorelement/origin/index.html index 8796c5532a2a13..737fd66ebb6bb4 100644 --- a/files/zh-cn/web/api/htmlanchorelement/origin/index.html +++ b/files/zh-cn/web/api/htmlanchorelement/origin/index.html @@ -8,7 +8,7 @@ ---

    {{APIRef("URL API")}}

    -

    HTMLHyperlinkElementUtils.origin 只读属性是一个 {{domxref("USVString")}} ,其中包含代表URL的原始码的Unicode序列化,即:

    +

    HTMLHyperlinkElementUtils.origin 只读属性是一个 {{domxref("USVString")}} ,其中包含代表 URL 的原始码的 Unicode 序列化,即:

    • for URL using the http or https, the scheme followed by '://', followed by the domain, followed by ':', followed by the port (the default port, 80 and 443 respectively, if explicitely specified);
    • diff --git a/files/zh-cn/web/api/htmlanchorelement/pathname/index.html b/files/zh-cn/web/api/htmlanchorelement/pathname/index.html index 5e77c6e9d97888..bfd3fbdc0e65c0 100644 --- a/files/zh-cn/web/api/htmlanchorelement/pathname/index.html +++ b/files/zh-cn/web/api/htmlanchorelement/pathname/index.html @@ -8,7 +8,7 @@ ---

      {{ApiRef("URL API")}}

      -

      HTMLHyperlinkElementUtils.pathname 属性是一个 {{domxref("USVString")}} ,其中包含一个初始的'/'后跟URL的路径。

      +

      HTMLHyperlinkElementUtils.pathname 属性是一个 {{domxref("USVString")}} ,其中包含一个初始的'/'后跟 URL 的路径。

      Syntax

      diff --git a/files/zh-cn/web/api/htmlanchorelement/search/index.html b/files/zh-cn/web/api/htmlanchorelement/search/index.html index 50e552014177cc..15441342064be5 100644 --- a/files/zh-cn/web/api/htmlanchorelement/search/index.html +++ b/files/zh-cn/web/api/htmlanchorelement/search/index.html @@ -8,7 +8,7 @@ ---

      {{ApiRef("URL API")}}

      -

      HTMLHyperlinkElementUtils.search 属性是一个搜索字符串,也叫做查询字符串, 它是一个 {{domxref("USVString")}} ,包含 '?' 和随后的 URL 参数。

      +

      HTMLHyperlinkElementUtils.search 属性是一个搜索字符串,也叫做查询字符串,它是一个 {{domxref("USVString")}} ,包含 '?' 和随后的 URL 参数。

      语法

      @@ -53,5 +53,5 @@

      浏览器兼容性

      相关链接

        -
      • 它属于{{domxref("HTMLHyperlinkElementUtils")}} mixin 。
      • +
      • 它属于{{domxref("HTMLHyperlinkElementUtils")}} mixin。
      diff --git a/files/zh-cn/web/api/htmlanchorelement/tostring/index.html b/files/zh-cn/web/api/htmlanchorelement/tostring/index.html index f58da581755a5a..3a38baaa8fb7a8 100644 --- a/files/zh-cn/web/api/htmlanchorelement/tostring/index.html +++ b/files/zh-cn/web/api/htmlanchorelement/tostring/index.html @@ -9,7 +9,7 @@ ---

      {{ApiRef("URL API")}}

      -

      HTMLHyperlinkElementUtils.toString() 方法返回一个包含整个URL的 {{domxref("USVString")}} 。它是{{domxref("HTMLHyperlinkElementUtils.href")}} 的一个只读版本。

      +

      HTMLHyperlinkElementUtils.toString() 方法返回一个包含整个 URL 的 {{domxref("USVString")}} 。它是{{domxref("HTMLHyperlinkElementUtils.href")}} 的一个只读版本。

      句法

      diff --git a/files/zh-cn/web/api/htmlareaelement/index.html b/files/zh-cn/web/api/htmlareaelement/index.html index eee354dd5e8b90..387bbcb4b02254 100644 --- a/files/zh-cn/web/api/htmlareaelement/index.html +++ b/files/zh-cn/web/api/htmlareaelement/index.html @@ -7,7 +7,7 @@
      {{APIRef("HTML DOM")}}
      -

      HTMLAreaElement 接口提供了一些属性和方法 (除了常见的对象{{domxref("HTMLElement")}} 接口提供的属性和方法通过继承也能获取到) 用来控制一个area元素的布局和展现。

      +

      HTMLAreaElement 接口提供了一些属性和方法 (除了常见的对象{{domxref("HTMLElement")}} 接口提供的属性和方法通过继承也能获取到) 用来控制一个 area 元素的布局和展现。

      属性

      @@ -17,9 +17,9 @@

      属性

      {{domxref("HTMLAreaElement.accessKey")}}
      值为一个 {{domxref("DOMString")}} 类型,包含了一个简单的字符代表键盘上的一个按键,相当于快捷键。
      {{domxref("HTMLAreaElement.alt")}}
      -
      值为一个{{domxref("DOMString")}} 类型,代表了 {{ htmlattrxref("alt", "area") }} HTML 属性,,包含一个area对象显示异常的情况下显示的备用文本字符串。
      +
      值为一个{{domxref("DOMString")}} 类型,代表了 {{ htmlattrxref("alt", "area") }} HTML 属性,,包含一个 area 对象显示异常的情况下显示的备用文本字符串。
      {{domxref("HTMLAreaElement.coords")}}
      -
      值为一个 {{domxref("DOMString")}} 类型,代表了 {{ htmlattrxref("coords", "area") }} HTML 属性, 包含了定义热区相关的坐标。
      +
      值为一个 {{domxref("DOMString")}} 类型,代表了 {{ htmlattrxref("coords", "area") }} HTML 属性,包含了定义热区相关的坐标。
      {{domxref("HTMLAreaElement.download")}} {{experimental_inline}}
      值为一个 {{domxref("DOMString")}} 类型,表明此资源是将要被下载的资源而不是显示在浏览器页面中。值为下载保存文件的推荐文件名。如果名字在操作系统里不是一个合格的文件名格式,浏览器将会做相应的修改。
      {{domxref("URLUtils.hash")}}
      diff --git a/files/zh-cn/web/api/htmlaudioelement/audio/index.html b/files/zh-cn/web/api/htmlaudioelement/audio/index.html index 7987eba96961d8..3c9b3b34342adb 100644 --- a/files/zh-cn/web/api/htmlaudioelement/audio/index.html +++ b/files/zh-cn/web/api/htmlaudioelement/audio/index.html @@ -42,7 +42,7 @@

      检测回放时机

      提供三种方法给开发者,判断音频文件是否已经加载,允许开始回放:

        -
      • 检测 {{domxref("HTMLMediaElement.readyState", "readyState")}} 属性的值. 如果值是 HTMLMediaElement.HAVE_FUTURE_DATA,说明有足够的数据开始回放并能至少播放一小段时间。如果值是 HTMLMediaElement.HAVE_ENOUGH_DATA,根据当前的下载速率,说明有足够的数据,你可以无干扰地播放至结束。
      • +
      • 检测 {{domxref("HTMLMediaElement.readyState", "readyState")}} 属性的值。如果值是 HTMLMediaElement.HAVE_FUTURE_DATA,说明有足够的数据开始回放并能至少播放一小段时间。如果值是 HTMLMediaElement.HAVE_ENOUGH_DATA,根据当前的下载速率,说明有足够的数据,你可以无干扰地播放至结束。
      • 监听 {{domxref("HTMLMediaElement.canplay_event", "canplay")}} 事件。当足够的音频数据被发送至 <audio> 元素,能开始回放,即使可能出现中断时,会触发该事件。
      • 监听 {{domxref("HTMLMediaElement.canplaythrough_event", "canplaythrough")}} 事件。当音频应该没有干扰能够顺利播放时将会触发该事件。
      diff --git a/files/zh-cn/web/api/htmlaudioelement/index.html b/files/zh-cn/web/api/htmlaudioelement/index.html index 71779750b476ba..a2f313d168f854 100644 --- a/files/zh-cn/web/api/htmlaudioelement/index.html +++ b/files/zh-cn/web/api/htmlaudioelement/index.html @@ -26,7 +26,7 @@

      方法

      废弃的且仅适用于 Mozilla 的方法

      -

      以下方法是未标准化的,请勿使用.

      +

      以下方法是未标准化的,请勿使用。

      {{domxref("HTMLAudioElement.mozCurrentSampleOffset", "mozCurrentSampleOffset()")}} {{non-standard_inline}} {{obsolete_inline}}
      diff --git a/files/zh-cn/web/api/htmlbaseelement/index.html b/files/zh-cn/web/api/htmlbaseelement/index.html index a332316a054f6e..a191127ce3ff90 100644 --- a/files/zh-cn/web/api/htmlbaseelement/index.html +++ b/files/zh-cn/web/api/htmlbaseelement/index.html @@ -11,7 +11,7 @@
       
      -

      HTMLBaseElement 接口包含一份HTML文件的基础 URI设定,该对象继承了所有 {{domxref("HTMLElement")}} 接口中定义的方法与属性。

      +

      HTMLBaseElement 接口包含一份 HTML 文件的基础 URI 设定,该对象继承了所有 {{domxref("HTMLElement")}} 接口中定义的方法与属性。

      属性

      @@ -19,7 +19,7 @@

      属性

      {{domxref("HTMLBaseElement.href")}}
      -
      映射自 {{domxref("DOMString")}}  HTML {{htmlattrxref("href", "base")}} 特性,包含了当前文档中所有相对 URL 地址的基准URL。
      +
      映射自 {{domxref("DOMString")}}  HTML {{htmlattrxref("href", "base")}} 特性,包含了当前文档中所有相对 URL 地址的基准 URL。
      {{domxref("HTMLBaseElement.target")}}
      Is a {{domxref("DOMString")}} that reflects the {{htmlattrxref("target", "base")}} HTML attribute, containing a default target browsing context or frame for elements that do not have a target reference specified.
      diff --git a/files/zh-cn/web/api/htmlbuttonelement/index.html b/files/zh-cn/web/api/htmlbuttonelement/index.html index 9ea6ed957fbf41..dc49c50a616419 100644 --- a/files/zh-cn/web/api/htmlbuttonelement/index.html +++ b/files/zh-cn/web/api/htmlbuttonelement/index.html @@ -8,7 +8,7 @@ ---
      {{APIRef("HTML DOM")}}
      -

      HTMLButtonElement 接口提供操作button元素 (除了 {{HTMLElement("button")}} 对象,这个接口对继承了该对象的元素也有效)的属性和方法。

      +

      HTMLButtonElement 接口提供操作 button 元素(除了 {{HTMLElement("button")}} 对象,这个接口对继承了该对象的元素也有效)的属性和方法。

      属性

      @@ -47,7 +47,7 @@

      属性

    - + @@ -57,7 +57,7 @@

    属性

    - + @@ -72,7 +72,7 @@

    属性

    - + @@ -82,12 +82,12 @@

    属性

    - + - + @@ -96,7 +96,7 @@

    属性

    • "submit": 这个按钮会提交表单。如果不指定该属性,这是默认值。{{HTMLVersionInline(5)}} 中可以动态改为空值或者无效值。
    • "reset": 用于重置(清空)表单。
    • -
    • "button": 什么都不做的按钮。通常通过Javascript挂载事件。
    • +
    • "button": 什么都不做的按钮。通常通过 Javascript 挂载事件。
    • "menu": 显示菜单的按钮 {{experimental_inline}}。
    @@ -104,7 +104,7 @@

    属性

    - + @@ -150,7 +150,7 @@

    方法

    Event.CAPTURING_PHASE 1事件正在被目标元素的祖先对象处理。这个处理过程从{{domxref("Window")}}开始,然后{{domxref("Document")}}, 然后是{{domxref("HTMLHtmlElement")}}, 一直这样,直到目标元素的父元素。 通过{{domxref("EventTarget.addEventListener()")}} 注册为捕获模式的{{domxref("EventListener", "Event listeners", "", 1)}} 被调用。事件正在被目标元素的祖先对象处理。这个处理过程从{{domxref("Window")}}开始,然后{{domxref("Document")}}, 然后是{{domxref("HTMLHtmlElement")}}, 一直这样,直到目标元素的父元素。通过{{domxref("EventTarget.addEventListener()")}} 注册为捕获模式的{{domxref("EventListener", "Event listeners", "", 1)}} 被调用。
    Event.AT_TARGET 2事件对象已经抵达{{domxref("EventTarget", "the event's target", "", 1)}}. 为这个阶段注册的事件监听被调用。 如果 {{domxref("Event.bubbles")}} 的值为 false,对事件对象的处理在这个阶段后就会结束。事件对象已经抵达{{domxref("EventTarget", "the event's target", "", 1)}}. 为这个阶段注册的事件监听被调用。如果 {{domxref("Event.bubbles")}} 的值为 false,对事件对象的处理在这个阶段后就会结束。
    Event.BUBBLING_PHASE
    formAction {{domxref("DOMString")}}一个处理提交信息的URI资源地址。如果指定该属性,会覆盖拥有该元素的{{HTMLElement("form")}} 元素的{{htmlattrxref("action", "form")}} 属性。一个处理提交信息的 URI 资源地址。如果指定该属性,会覆盖拥有该元素的{{HTMLElement("form")}} 元素的{{htmlattrxref("action", "form")}} 属性。
    formEncType
    formMethod {{domxref("DOMString")}}浏览器提交表单内容的HTTP方法。如果指定该属性,会覆盖拥有该元素的{{HTMLElement("form")}} 元素的.{{htmlattrxref("method", "form")}}属性。浏览器提交表单内容的 HTTP 方法。如果指定该属性,会覆盖拥有该元素的{{HTMLElement("form")}} 元素的.{{htmlattrxref("method", "form")}}属性。
    formNoValidate
    labels {{readonlyInline}} {{domxref("NodeList")}}一个{{HTMLElement("label")}} 元素表,说明哪些标签是归属这个button的。一个{{HTMLElement("label")}} 元素表,说明哪些标签是归属这个 button 的。
    menu {{experimental_inline}}
    name {{domxref("DOMString")}}提交到服务器时表单描述该对象的name。 {{HTMLVersionInline(5)}} 如果指定该属性,不能使用空字符串 。提交到服务器时表单描述该对象的 name。 {{HTMLVersionInline(5)}} 如果指定该属性,不能使用空字符串。
    tabIndex long用于表示该元素在tab按钮跳动过程中的序号的一个数字。用于表示该元素在 tab 按钮跳动过程中的序号的一个数字。
    type
    validationMessage {{readonlyInline}} {{domxref("DOMString")}}报告该控件不满足验证要求的,提示给用户的看的信息。如果这个控件没有验证约束(willValidate值为false),或者满足验证的要求,那么这个属性为空字符串。报告该控件不满足验证要求的,提示给用户的看的信息。如果这个控件没有验证约束 (willValidate值为false),或者满足验证的要求,那么这个属性为空字符串。
    validity {{readonlyInline}}
    -

    在基于Gecko的浏览器中,在表单验证时会使用{{cssxref(":-moz-submit-invalid")}} 伪类修饰提交按钮。

    +

    在基于 Gecko 的浏览器中,在表单验证时会使用{{cssxref(":-moz-submit-invalid")}} 伪类修饰提交按钮。

    规范

    @@ -195,5 +195,5 @@

    浏览器兼容性

    另见

      -
    • 实现该接口的HTML元素:{{ HTMLElement("button") }}
    • +
    • 实现该接口的 HTML 元素:{{ HTMLElement("button") }}
    diff --git a/files/zh-cn/web/api/htmlcanvaselement/getcontext/index.html b/files/zh-cn/web/api/htmlcanvaselement/getcontext/index.html index e91282be5161b4..dcb2581a2d13cc 100644 --- a/files/zh-cn/web/api/htmlcanvaselement/getcontext/index.html +++ b/files/zh-cn/web/api/htmlcanvaselement/getcontext/index.html @@ -30,7 +30,7 @@

    参数

    -

    注意:标识符 "experimental-webgl" 或 "experimental-webgl2" 用于新 WebGL的实现。 这些实现还没有达到测试套件一致性或图形驱动程序平台局势尚不稳定。Khronos Group 集团认证WebGL 实现在某些一致性规则

    +

    注意:标识符 "experimental-webgl" 或 "experimental-webgl2" 用于新 WebGL的实现。这些实现还没有达到测试套件一致性或图形驱动程序平台局势尚不稳定。Khronos Group 集团认证WebGL 实现在某些一致性规则

    上下文属性 (contextAttributes)
    @@ -63,7 +63,7 @@

    参数

    failIfMajorPerformanceCaveat: 表明在一个系统性能低的环境是否创建该上下文的{{jsxref("boolean")}}值。

  • -

    powerPreference: 指示浏览器在运行 WebGL 上下文时使用相应的 GPU 电源配置。 可能值如下:

    +

    powerPreference: 指示浏览器在运行 WebGL 上下文时使用相应的 GPU 电源配置。可能值如下:

    • @@ -157,5 +157,5 @@

      另请参阅

      • {{domxref("HTMLCanvasElement")}}.
      • {{domxref("OffscreenCanvas.getContext()")}}
      • -
      • 可用的上下文: {{domxref("CanvasRenderingContext2D")}}, {{domxref("WebGLRenderingContext")}} 和 {{domxref("WebGL2RenderingContext")}} and {{domxref("ImageBitmapRenderingContext")}}.
      • +
      • 可用的上下文:{{domxref("CanvasRenderingContext2D")}}, {{domxref("WebGLRenderingContext")}} 和 {{domxref("WebGL2RenderingContext")}} and {{domxref("ImageBitmapRenderingContext")}}.
      diff --git a/files/zh-cn/web/api/htmlcanvaselement/index.html b/files/zh-cn/web/api/htmlcanvaselement/index.html index 7fe1c89cfa3368..62b72b659e477e 100644 --- a/files/zh-cn/web/api/htmlcanvaselement/index.html +++ b/files/zh-cn/web/api/htmlcanvaselement/index.html @@ -15,13 +15,13 @@

      属性

      {{domxref("HTMLCanvasElement.height")}}
      -
      是一个正整数,反映了{{HTMLElement("canvas")}} 元素的{{htmlattrxref("height", "canvas")}} HTML 属性,以 CSS 像素表示。 如果未指定属性,或者将其设置为无效值(例如负数),则使用默认值 150。
      +
      是一个正整数,反映了{{HTMLElement("canvas")}} 元素的{{htmlattrxref("height", "canvas")}} HTML 属性,以 CSS 像素表示。如果未指定属性,或者将其设置为无效值(例如负数),则使用默认值 150。
      {{domxref("HTMLCanvasElement.width")}}
      -
      是一个正整数,反映了{{HTMLElement("canvas")}} 元素的{{htmlattrxref("width", "canvas")}} HTML 属性,以 CSS 像素表示。 如果未指定属性,或者将其设置为无效值(例如负数),则使用默认值 300。
      +
      是一个正整数,反映了{{HTMLElement("canvas")}} 元素的{{htmlattrxref("width", "canvas")}} HTML 属性,以 CSS 像素表示。如果未指定属性,或者将其设置为无效值(例如负数),则使用默认值 300。
      {{domxref("HTMLCanvasElement.mozOpaque")}} {{non-standard_inline}} {{deprecated_inline}}
      -
      是反映 {{HTMLElement("canvas")}}元素的{{htmlattrxref("moz-opaque", "canvas")}} 属性的{{jsxref("Boolean")}}。 它让画布知道半透明性是否会成为一个因素。 如果画布知道没有透明感,则可以优化绘画性能。 仅基于 Mozilla 的浏览器支持此功能, 可以使用标准化的{{domxref("HTMLCanvasElement.getContext()", "canvas.getContext('2d', { alpha: false })")}} 代替。
      +
      是反映 {{HTMLElement("canvas")}}元素的{{htmlattrxref("moz-opaque", "canvas")}} 属性的{{jsxref("Boolean")}}。它让画布知道半透明性是否会成为一个因素。如果画布知道没有透明感,则可以优化绘画性能。仅基于 Mozilla 的浏览器支持此功能,可以使用标准化的{{domxref("HTMLCanvasElement.getContext()", "canvas.getContext('2d', { alpha: false })")}} 代替。
      {{domxref("HTMLCanvasElement.mozPrintCallback")}}{{non-standard_inline}}
      -
      是最初为空的函数。 Web 内容可以将其设置为 JavaScript 函数,该函数将在打印页面时重新绘制画布时调用。 调用时,回调将传递一个实现了MozCanvasPrintState接口的“ printState”对象。 回调可以从 printState 对象获取要绘制的上下文,然后必须在完成时在其上调用 done() 。 mozPrintCallback 的目的是在所使用打印机的分辨率下获得较高分辨率的画布渲染。 请参阅此博客文章
      +
      是最初为空的函数。Web 内容可以将其设置为 JavaScript 函数,该函数将在打印页面时重新绘制画布时调用。调用时,回调将传递一个实现了MozCanvasPrintState接口的“printState”对象。回调可以从 printState 对象获取要绘制的上下文,然后必须在完成时在其上调用 done() 。 mozPrintCallback 的目的是在所使用打印机的分辨率下获得较高分辨率的画布渲染。 请参阅此博客文章

      方法

      @@ -32,11 +32,11 @@

      方法

      {{domxref("HTMLCanvasElement.captureStream()")}} {{experimental_inline}}
      返回{{domxref("CanvasCaptureMediaStream")}} ,它是对画布表面的实时视频捕获。
      {{domxref("HTMLCanvasElement.getContext()")}}
      -
      返回画布上的绘图上下文;如果不支持上下文 ID,则返回 null。 绘图上下文可让您在画布上绘图。 调用 getContext 传入"2d" 可以返回一个{{domxref("CanvasRenderingContext2D")}}对象,也可以传入"webgl"(或"experimental-webgl")返回一个{{domxref("WebGLRenderingContext")}} 对象。 此上下文仅在实现WebGL的浏览器上可用。
      +
      返回画布上的绘图上下文;如果不支持上下文 ID,则返回 null。绘图上下文可让您在画布上绘图。调用 getContext 传入"2d" 可以返回一个{{domxref("CanvasRenderingContext2D")}}对象,也可以传入"webgl"(或"experimental-webgl")返回一个{{domxref("WebGLRenderingContext")}} 对象。此上下文仅在实现WebGL的浏览器上可用。
      {{domxref("HTMLCanvasElement.toDataURL()")}}
      -
      返回一个数据 URL,该 URL 包含由类型参数指定的格式的图像(默认为png)。 返回的图像分辨率为 96dpi。
      +
      返回一个数据 URL,该 URL 包含由类型参数指定的格式的图像(默认为png)。返回的图像分辨率为 96dpi。
      {{domxref("HTMLCanvasElement.toBlob()")}}
      -
      创建一个{{domxref("Blob")}} 对象,表示 canvas 中包含的图像; 该文件可以由用户代理决定是否缓存在磁盘上或存储在内存中。
      +
      创建一个{{domxref("Blob")}} 对象,表示 canvas 中包含的图像;该文件可以由用户代理决定是否缓存在磁盘上或存储在内存中。
      {{domxref("HTMLCanvasElement.transferControlToOffscreen()")}} {{experimental_inline}}
      将控制权转移到主线程或辅助线程上的 {{domxref("OffscreenCanvas")}}对象。
      diff --git a/files/zh-cn/web/api/htmlcanvaselement/toblob/index.md b/files/zh-cn/web/api/htmlcanvaselement/toblob/index.md index d3b3e925e59ac7..677bee821db959 100644 --- a/files/zh-cn/web/api/htmlcanvaselement/toblob/index.md +++ b/files/zh-cn/web/api/htmlcanvaselement/toblob/index.md @@ -102,7 +102,7 @@ canvas.toBlob(blobCallback('passThisString'), 'image/vnd.microsoft.icon', ### 使用 OS.File 保存图像到本地(chrome/add-on context only) -> **备注:** 此方法可将 toBlob 生成的图片保存到本地,但仅在 Firefox、 Chrome 上下文或带有相关插件的情况下可用,因为 Web 并不存在 OS API。 +> **备注:** 此方法可将 toBlob 生成的图片保存到本地,但仅在 Firefox、Chrome 上下文或带有相关插件的情况下可用,因为 Web 并不存在 OS API。 ```js const canvas = document.getElementById('canvas'); diff --git a/files/zh-cn/web/api/htmlcollection/index.md b/files/zh-cn/web/api/htmlcollection/index.md index 8f9c0fd451712f..fd6fbeb64798e2 100644 --- a/files/zh-cn/web/api/htmlcollection/index.md +++ b/files/zh-cn/web/api/htmlcollection/index.md @@ -26,7 +26,7 @@ HTML DOM 中的 `HTMLCollection` 是即时更新的(live);当其所包 ## 方法 - {{domxref("HTMLCollection.item()")}} - - : 根据给定的索引(从0开始),返回具体的节点。如果索引超出了范围,则返回 `null`。 + - : 根据给定的索引(从 0 开始),返回具体的节点。如果索引超出了范围,则返回 `null`。 访问 `collection[i]`(在索引 `i` 超出范围时会返回 `undefined`)的替代方法。这在非 JavaScript DOM 的实现中非常有用。 diff --git a/files/zh-cn/web/api/htmlcollection/item/index.html b/files/zh-cn/web/api/htmlcollection/item/index.html index 4d1ad8a5c8af0e..3876911ccf2a89 100644 --- a/files/zh-cn/web/api/htmlcollection/item/index.html +++ b/files/zh-cn/web/api/htmlcollection/item/index.html @@ -5,22 +5,22 @@ ---

      {{APIRef("HTML DOM")}}

      -

      HTMLCollection.item() 由位置获取元素.

      +

      HTMLCollection.item() 由位置获取元素。

      参数

      index
      -
      想要被返回的Node的位置. 元素在HTML Collection中的顺序和他们在源文档的顺序保持一致。
      +
      想要被返回的 Node 的位置。元素在 HTML Collection 中的顺序和他们在源文档的顺序保持一致。

      返回值

      -

      指定的index的{{domxref("Node")}} , 如果index小于0或者不小于它的长度属性则返回null。

      +

      指定的 index 的{{domxref("Node")}} , 如果 index 小于 0 或者不小于它的长度属性则返回 null。

      Description

      -

      HTMLCollection中item( )方法返回一个编号的元素 ,在JavaScript中把HTMLCollection当成是一个是数组并用数组符号去索引十分简单。

      +

      HTMLCollection 中 item( ) 方法返回一个编号的元素,在 JavaScript 中把 HTMLCollection 当成是一个是数组并用数组符号去索引十分简单。

      Example

      diff --git a/files/zh-cn/web/api/htmldetailselement/index.html b/files/zh-cn/web/api/htmldetailselement/index.html index 3e734f07adb652..2f9f5ce7f44eb5 100644 --- a/files/zh-cn/web/api/htmldetailselement/index.html +++ b/files/zh-cn/web/api/htmldetailselement/index.html @@ -5,17 +5,17 @@ ---

      {{APIRef("HTML DOM")}}

      -

      HTMLDetailsElement 接口提供了特殊的属性 (除了常规的 {{domxref("HTMLElement")}} 接口之外,它还可以通过继承获得这些属性) 用于操作 {{HTMLElement("details")}} 元素.

      +

      HTMLDetailsElement 接口提供了特殊的属性 (除了常规的 {{domxref("HTMLElement")}} 接口之外,它还可以通过继承获得这些属性) 用于操作 {{HTMLElement("details")}} 元素。

      {{InheritanceDiagram(600, 120)}}

      属性

      -

      从其父级 {{domxref("HTMLElement")}} 继承属性.

      +

      从其父级 {{domxref("HTMLElement")}} 继承属性。

      {{domxref("HTMLDetailsElement.open")}}
      -
      是一个 {{domxref("boolean")}} 反射 {{htmlattrxref("open", "details")}} HTML属性, 指示是否向用户显示元素的内容 (不包括 {{HTMLElement("summary")}})
      +
      是一个 {{domxref("boolean")}} 反射 {{htmlattrxref("open", "details")}} HTML 属性, 指示是否向用户显示元素的内容 (不包括 {{HTMLElement("summary")}})

      方法

      @@ -40,5 +40,5 @@

      浏览器兼容性

      另见

        -
      • 实现此接口的HTML元素: {{HTMLElement("details")}}
      • +
      • 实现此接口的 HTML 元素: {{HTMLElement("details")}}
      diff --git a/files/zh-cn/web/api/htmldetailselement/toggle_event/index.html b/files/zh-cn/web/api/htmldetailselement/toggle_event/index.html index 1e7ef4beab1a2f..faf1c95492c19c 100644 --- a/files/zh-cn/web/api/htmldetailselement/toggle_event/index.html +++ b/files/zh-cn/web/api/htmldetailselement/toggle_event/index.html @@ -35,7 +35,7 @@

      示例

      -

      此示例记录打开的章节。 当章节关闭时,它们将从日志中删除。

      +

      此示例记录打开的章节。当章节关闭时,它们将从日志中删除。

      HTML

      diff --git a/files/zh-cn/web/api/htmldialogelement/index.html b/files/zh-cn/web/api/htmldialogelement/index.html index baf2240b9a6202..942675c9a8d73e 100644 --- a/files/zh-cn/web/api/htmldialogelement/index.html +++ b/files/zh-cn/web/api/htmldialogelement/index.html @@ -30,7 +30,7 @@

      属性

      open {{domxref("Boolean")}} - 来自{{ htmlattrxref("open", "dialog") }} HTML 属性, 表示这个对话框可以进行互动. + 来自{{ htmlattrxref("open", "dialog") }} HTML 属性,表示这个对话框可以进行互动。 returnValue @@ -42,7 +42,7 @@

      属性

      方法

      -

      继承自父接口 , {{domxref("HTMLElement")}}。

      +

      继承自父接口, {{domxref("HTMLElement")}}。

      @@ -56,17 +56,17 @@

      方法

      - + - + - +
      close() {{ HTMLVersionInline(5) }} void关闭对话框。 可选传入类型为{domxref("DOMString")}}的参数,用来更新对话框的returnValue。关闭对话框。可选传入类型为{domxref("DOMString")}}的参数,用来更新对话框的 returnValue。
      show() {{ HTMLVersionInline(5) }} void非模式化的显示这个对话框, 即:打开这个对话框之后依然可以和其他内容进行交互。 可选传入类型为 {{domxref("Element")}} 或者 {{domxref("MouseEvent")}} 的参数,用来定义对话框的显示位置。非模式化的显示这个对话框,即:打开这个对话框之后依然可以和其他内容进行交互。可选传入类型为 {{domxref("Element")}} 或者 {{domxref("MouseEvent")}} 的参数,用来定义对话框的显示位置。
      showModal() {{ HTMLVersionInline(5) }} void模式化的显示这个对话框, 并且将会至于所有其他对话框的顶层(屏蔽其他对话框的交互)。 可选传入类型为{{domxref("Element")}} 或者 {{domxref("MouseEvent")}} 的参数, 用来定义对话框的显示位置。模式化的显示这个对话框,并且将会至于所有其他对话框的顶层(屏蔽其他对话框的交互)。可选传入类型为{{domxref("Element")}} 或者 {{domxref("MouseEvent")}} 的参数,用来定义对话框的显示位置。
      diff --git a/files/zh-cn/web/api/htmldivelement/index.html b/files/zh-cn/web/api/htmldivelement/index.html index b4bf0a08223a05..d7b8a215a6daf2 100644 --- a/files/zh-cn/web/api/htmldivelement/index.html +++ b/files/zh-cn/web/api/htmldivelement/index.html @@ -63,5 +63,5 @@

      浏览器兼容性

      参见

        -
      • 此HTML元素实现了这个接口:{{ HTMLElement("div") }}。
      • +
      • 此 HTML 元素实现了这个接口:{{ HTMLElement("div") }}。
      diff --git a/files/zh-cn/web/api/htmlelement/animationstart_event/index.html b/files/zh-cn/web/api/htmlelement/animationstart_event/index.html index 28764942cb920f..f88a38ecbf62ff 100644 --- a/files/zh-cn/web/api/htmlelement/animationstart_event/index.html +++ b/files/zh-cn/web/api/htmlelement/animationstart_event/index.html @@ -12,7 +12,7 @@ translation_of: Web/API/HTMLElement/animationstart_event original_slug: Web/Events/animationstart --- -

      animationstart 事件会在 CSS 动画开始时触发。 如果有 animation-delay 延时,事件会在延迟时效过后立即触发。为负数的延时时长会致使事件被触发时事件的 elapsedTime 属性值等于该时长的绝对值(并且,相应地,动画将直接播放该时长绝对值之后的动画)。

      +

      animationstart 事件会在 CSS 动画开始时触发。如果有 animation-delay 延时,事件会在延迟时效过后立即触发。为负数的延时时长会致使事件被触发时事件的 elapsedTime 属性值等于该时长的绝对值(并且,相应地,动画将直接播放该时长绝对值之后的动画)。

      基本信息

      diff --git a/files/zh-cn/web/api/htmlelement/innertext/index.html b/files/zh-cn/web/api/htmlelement/innertext/index.html index d891596d48da48..7be112ee97deab 100644 --- a/files/zh-cn/web/api/htmlelement/innertext/index.html +++ b/files/zh-cn/web/api/htmlelement/innertext/index.html @@ -14,7 +14,7 @@ ---
      {{APIRef("DOM")}}
      -

      innerText 属性表示一个节点及其后代的“渲染”文本内容。 As a getter, it approximates the text the user would get if they highlighted the contents of the element with the cursor and then copied it to the clipboard.

      +

      innerText 属性表示一个节点及其后代的“渲染”文本内容。As a getter, it approximates the text the user would get if they highlighted the contents of the element with the cursor and then copied it to the clipboard.

      Note: innerText 很容易与{{domxref("Node.textContent")}}混淆,但这两个属性间实际上有很重要的区别。大体来说,innerText 可操作已被渲染的内容, 而 textContent 则不会。

      @@ -68,7 +68,7 @@

      浏览器兼容

      {{Compat}}

      -

      此特性最初由 Internet Explorer 引入。 被所有主要的浏览器供应商(vendor)采用后,它于 2016 年正式进入 HTML 标准。

      +

      此特性最初由 Internet Explorer 引入。被所有主要的浏览器供应商(vendor)采用后,它于 2016 年正式进入 HTML 标准。

      参见

      diff --git a/files/zh-cn/web/api/htmlelement/outertext/index.html b/files/zh-cn/web/api/htmlelement/outertext/index.html index 594a8c47c44885..008cc39ab791dd 100644 --- a/files/zh-cn/web/api/htmlelement/outertext/index.html +++ b/files/zh-cn/web/api/htmlelement/outertext/index.html @@ -11,7 +11,7 @@

      概要

      -

      HTMLElement.outerText是一个非标准的属性。作为一个获得器,它返回与{{domxref("HTMLElement.innerText")}}一致的值。 作为一个设置器,它将删除当前节点并将其替换为给定的文本。

      +

      HTMLElement.outerText是一个非标准的属性。作为一个获得器,它返回与{{domxref("HTMLElement.innerText")}}一致的值。作为一个设置器,它将删除当前节点并将其替换为给定的文本。

      范例

      diff --git a/files/zh-cn/web/api/htmlelement/transitionstart_event/index.md b/files/zh-cn/web/api/htmlelement/transitionstart_event/index.md index a475a9781040d6..6d9c9140e53b1b 100644 --- a/files/zh-cn/web/api/htmlelement/transitionstart_event/index.md +++ b/files/zh-cn/web/api/htmlelement/transitionstart_event/index.md @@ -13,7 +13,7 @@ browser-compat: api.HTMLElement.transitionstart_event --- {{APIRef}}{{SeeCompatTable}} -**`transitionstart`** 事件会在 [CSS transition](/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions) 实际开始的时候触发, 或者说在某个 {{cssxref("transition-delay")}} 已经结束之后触发。 +**`transitionstart`** 事件会在 [CSS transition](/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions) 实际开始的时候触发,或者说在某个 {{cssxref("transition-delay")}} 已经结束之后触发。 @@ -119,7 +119,7 @@ transition.addEventListener('transitionend', function() { - {{domxref("GlobalEventHandlers.ontransitionstart")}} 事件处理器 - {{domxref("TransitionEvent")}} 接口 -- CSS 属性: {{cssxref("transition")}}, {{cssxref("transition-delay")}}, {{cssxref("transition-duration")}}, {{cssxref("transition-property")}}, {{cssxref("transition-timing-function")}} -- 相关的事件: {{domxref("HTMLElement/transitionend_event", "transitionend")}}, {{domxref("HTMLElement/transitionrun_event", "transitionrun")}}, {{domxref("HTMLElement/transitioncancel_event", "transitioncancel")}} -- 在 {{domxref("Document")}} targets 上的此事件: {{domxref("Document/transitionstart_event", "transitionstart")}} -- 在 {{domxref("Window")}} targets 上的此事件: {{domxref("Window/transitionstart_event", "transitionstart")}} +- CSS 属性:{{cssxref("transition")}}, {{cssxref("transition-delay")}}, {{cssxref("transition-duration")}}, {{cssxref("transition-property")}}, {{cssxref("transition-timing-function")}} +- 相关的事件:{{domxref("HTMLElement/transitionend_event", "transitionend")}}, {{domxref("HTMLElement/transitionrun_event", "transitionrun")}}, {{domxref("HTMLElement/transitioncancel_event", "transitioncancel")}} +- 在 {{domxref("Document")}} targets 上的此事件:{{domxref("Document/transitionstart_event", "transitionstart")}} +- 在 {{domxref("Window")}} targets 上的此事件:{{domxref("Window/transitionstart_event", "transitionstart")}} diff --git a/files/zh-cn/web/api/htmlfieldsetelement/index.html b/files/zh-cn/web/api/htmlfieldsetelement/index.html index c2e832bebee97e..72f4cc344e17d7 100644 --- a/files/zh-cn/web/api/htmlfieldsetelement/index.html +++ b/files/zh-cn/web/api/htmlfieldsetelement/index.html @@ -7,7 +7,7 @@

      HTML Field Set Element

      DOM fieldset elements expose the HTMLFieldSetElement  ({{ HTMLVersionInline(4) }} HTMLFieldSetElement) interface, which provides special properties and methods (beyond the regular element object interface they also have available to them by inheritance) for manipulating the layout and presentation of field-set elements.

      属性

      -

      以下属性除了 form 都是在 {{ HTMLVersionInline(5) }} 中新添加的.

      +

      以下属性除了 form 都是在 {{ HTMLVersionInline(5) }} 中新添加的。

      @@ -20,7 +20,7 @@

      属性

      - + @@ -72,12 +72,12 @@

      方法

      - + - +
      disabled Boolean读取HTML属性 {{ htmlattrxref("disabled", "fieldset") }},表明用户是否可以操作该控件.读取 HTML 属性 {{ htmlattrxref("disabled", "fieldset") }},表明用户是否可以操作该控件。
      elements
      checkValidity() Boolean如果元素的值没有有效性问题,则返回true,否则返回false并触发invalid事件.如果元素的值没有有效性问题,则返回true,否则返回false并触发invalid事件。
      setCustomValidity(in DOMString error) void设置一个自定义错误,则该元素将无法通过有效性验证.参数指定的字符串就是在向用户报告错误时显示的消息.如果为空字符串,则清除这个自定义错误.设置一个自定义错误,则该元素将无法通过有效性验证。参数指定的字符串就是在向用户报告错误时显示的消息.如果为空字符串,则清除这个自定义错误。
      diff --git a/files/zh-cn/web/api/htmlheadelement/index.html b/files/zh-cn/web/api/htmlheadelement/index.html index 079f3c42b4a93d..a60ff055e2a2cf 100644 --- a/files/zh-cn/web/api/htmlheadelement/index.html +++ b/files/zh-cn/web/api/htmlheadelement/index.html @@ -16,12 +16,12 @@

      属性

      {{domxref("HTMLHeadElement.profile")}} {{obsolete_inline}}
      -
      空格隔开的一个或多个用于表示元信息URI的{{domxref("DOMString")}}。
      +
      空格隔开的一个或多个用于表示元信息 URI 的{{domxref("DOMString")}}。

      方法

      -

      没有特殊的方法; 继承了父对象 {{domxref("HTMLElement")}} 的方法。

      +

      没有特殊的方法;继承了父对象 {{domxref("HTMLElement")}} 的方法。

      规范

      @@ -67,5 +67,5 @@

      浏览器兼容性

      另见

        -
      • 对应的HTML 元素是根据 {{HTMLElement("head")}}实现。
      • +
      • 对应的 HTML 元素是根据 {{HTMLElement("head")}}实现。
      diff --git a/files/zh-cn/web/api/htmlhtmlelement/index.html b/files/zh-cn/web/api/htmlhtmlelement/index.html index bb1ed579e8df2a..a841a1d95af131 100644 --- a/files/zh-cn/web/api/htmlhtmlelement/index.html +++ b/files/zh-cn/web/api/htmlhtmlelement/index.html @@ -8,7 +8,7 @@ ---
      {{ APIRef("HTML DOM") }}
      -

      HTMLHtmlElement 接口是给定HTML文档的根节点。它继承了 {{domxref("HTMLElement")}} 对象的属性和方法。

      +

      HTMLHtmlElement 接口是给定 HTML 文档的根节点。它继承了 {{domxref("HTMLElement")}} 对象的属性和方法。

      您可以通过读取{{domxref("document.documentElement")}}属性的值来获取文档的 HTMLHtmlElement对象

      @@ -20,12 +20,12 @@

      属性

      {{domxref("HTMLHtmlElement.version")}}  {{ obsolete_inline() }}
      -
      这是一个用于表示管理此文档的HTML文档类型定义(DTD)版本的 {{domxref("DOMString")}}。 但此属性不应再使用,因为它不符合要求。请仅忽略它。
      +
      这是一个用于表示管理此文档的HTML 文档类型定义(DTD)版本的 {{domxref("DOMString")}}。 但此属性不应再使用,因为它不符合要求。请仅忽略它。

      方法

      -

      没有明确的方法; 可从父项继承—— {{domxref("HTMLElement")}}。

      +

      没有明确的方法;可从父项继承—— {{domxref("HTMLElement")}}。

      规范

      @@ -73,5 +73,5 @@

      浏览器兼容性

      还可以看看

        -
      • 实现此接口的HTML元素 : {{HTMLElement("html")}}。
      • +
      • 实现此接口的 HTML 元素 : {{HTMLElement("html")}}。
      diff --git a/files/zh-cn/web/api/htmlhtmlelement/version/index.html b/files/zh-cn/web/api/htmlhtmlelement/version/index.html index d14cd7cf44614f..030fb739b1b7c1 100644 --- a/files/zh-cn/web/api/htmlhtmlelement/version/index.html +++ b/files/zh-cn/web/api/htmlhtmlelement/version/index.html @@ -7,6 +7,6 @@

      概述 

      -

      它返回有关文档的文档类型定义(DTD)的版本信息。 尽管此属性能够被Mozilla识别, 但此属性的返回值始终是空字符串。

      +

      它返回有关文档的文档类型定义(DTD)的版本信息。 尽管此属性能够被Mozilla识别,但此属性的返回值始终是空字符串。

      -
      此属性已被W3C的HTML 4.01技术建议声明弃用,赞成使用DTD来获取文档的版本信息。
      +
      此属性已被 W3C 的HTML 4.01 技术建议声明弃用,赞成使用 DTD 来获取文档的版本信息。
      diff --git a/files/zh-cn/web/api/htmliframeelement/contentwindow/index.html b/files/zh-cn/web/api/htmliframeelement/contentwindow/index.html index ae2ca932549383..3a163e1e38dbd2 100644 --- a/files/zh-cn/web/api/htmliframeelement/contentwindow/index.html +++ b/files/zh-cn/web/api/htmliframeelement/contentwindow/index.html @@ -5,9 +5,9 @@ ---
      {{APIRef("HTML DOM")}}
      -

      contentWindow 属性返回当前HTMLIFrameElementWindow对象. 你可以使用这个Window 对象去访问这个iframe的文档和它内部的DOM. 这个是可读属性, 但是它的属性像全局Window 一样是可以操作的. 

      +

      contentWindow 属性返回当前HTMLIFrameElementWindow对象. 你可以使用这个Window 对象去访问这个 iframe 的文档和它内部的 DOM. 这个是可读属性, 但是它的属性像全局Window 一样是可以操作的. 

      -

      关于contentWindow的示例

      +

      关于 contentWindow 的示例

      var x = document.getElementsByTagName("iframe")[0].contentWindow;
       //x = window.frames[0];
      diff --git a/files/zh-cn/web/api/htmliframeelement/index.html b/files/zh-cn/web/api/htmliframeelement/index.html
      index cc60d292c13376..265fb5c28f751e 100644
      --- a/files/zh-cn/web/api/htmliframeelement/index.html
      +++ b/files/zh-cn/web/api/htmliframeelement/index.html
      @@ -5,7 +5,7 @@
       ---
       
      {{APIRef("HTML DOM")}}
      -

      HTMLIFrameElement 接口提供了除 {{domxref("HTMLElement")}} 之外的一些特殊属性和方法(当然也包括了继承自 {{domxref("HTMLElement")}} 的部分)。这些方法用于操作内联frame元素的布局和展示。

      +

      HTMLIFrameElement 接口提供了除 {{domxref("HTMLElement")}} 之外的一些特殊属性和方法(当然也包括了继承自 {{domxref("HTMLElement")}} 的部分)。这些方法用于操作内联 frame 元素的布局和展示。

      属性

      @@ -15,35 +15,35 @@

      属性

      {{domxref("HTMLIFrameElement.align")}} {{obsolete_inline}}
      一个 {{domxref("DOMString")}} 指定了相对于当前上下文的对齐方式。
      {{domxref("HTMLIFrameElement.allowfullscreen")}} {{experimental_inline}}
      -
      一个 {{domxref("Boolean")}} 标识了该内联frame是否愿意被全屏防止。详情请参考 Using full-screen mode 。
      +
      一个 {{domxref("Boolean")}} 标识了该内联 frame 是否愿意被全屏防止。详情请参考 Using full-screen mode 。
      {{domxref("HTMLIFrameElement.contentDocument")}} {{readonlyInline}}
      -
      返回一个 {{domxref("Document")}},该内联frame嵌套的浏览上下文中活跃的document对象。
      +
      返回一个 {{domxref("Document")}},该内联 frame 嵌套的浏览上下文中活跃的 document 对象。
      {{domxref("HTMLIFrameElement.contentWindow")}} {{readonlyInline}}
      -
      返回一个 {{domxref("WindowProxy")}},该嵌套的浏览上下文中的window代理。
      +
      返回一个 {{domxref("WindowProxy")}},该嵌套的浏览上下文中的 window 代理。
      {{domxref("HTMLIFrameElement.frameBorder")}} {{obsolete_inline}}
      -
      一个 {{domxref("DOMString")}} 标识了是否在frame之间创建边框。
      +
      一个 {{domxref("DOMString")}} 标识了是否在 frame 之间创建边框。
      {{domxref("HTMLIFrameElement.height")}}
      -
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("height", "iframe")}} HTML 属性,标识了该frame的高度。
      +
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("height", "iframe")}} HTML 属性,标识了该 frame 的高度。
      {{domxref("HTMLIFrameElement.longDesc")}} {{obsolete_inline}}
      -
      一个 {{domxref("DOMString")}} 包含着该frame的详细描述的URI。
      +
      一个 {{domxref("DOMString")}} 包含着该 frame 的详细描述的 URI。
      {{domxref("HTMLIFrameElement.marginHeight")}} {{obsolete_inline}}
      -
      一个 {{domxref("DOMString")}} ,该frame的外边距高度。
      +
      一个 {{domxref("DOMString")}} ,该 frame 的外边距高度。
      {{domxref("HTMLIFrameElement.marginWidth")}} {{obsolete_inline}}
      -
      一个 {{domxref("DOMString")}} ,该frame的外边距宽度。
      +
      一个 {{domxref("DOMString")}} ,该 frame 的外边距宽度。
      {{domxref("HTMLIFrameElement.name")}}
      -
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("name", "iframe")}} HTML 属性,包含着用来引用该frame的名字。
      +
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("name", "iframe")}} HTML 属性,包含着用来引用该 frame 的名字。
      {{domxref("HTMLIFrameElement.referrerPolicy")}} {{experimental_inline}}
      -
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("referrerPolicy", "iframe")}} HTML 属性,标识了获取关联资源时要使用哪个referrer。
      +
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("referrerPolicy", "iframe")}} HTML 属性,标识了获取关联资源时要使用哪个 referrer。
      {{domxref("HTMLIFrameElement.sandbox")}}
      一个 {{domxref("DOMSettableTokenList")}} 反映着 {{htmlattrxref("sandbox", "iframe")}} HTML 属性,指示着对嵌套内容额外的限制。
      {{domxref("HTMLIFrameElement.scrolling")}} {{obsolete_inline}}
      -
      一个 {{domxref("DOMString")}} 指示着浏览器是否应该为该frame提供滚动条。
      +
      一个 {{domxref("DOMString")}} 指示着浏览器是否应该为该 frame 提供滚动条。
      {{domxref("HTMLIFrameElement.src")}}
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("src", "iframe")}} HTML 属性,包含被嵌入内容的地址。
      {{domxref("HTMLIFrameElement.srcdoc")}}
      -
      一个 {{domxref("DOMString")}} ,表示该frame中要显示的内容。
      +
      一个 {{domxref("DOMString")}} ,表示该 frame 中要显示的内容。
      {{domxref("HTMLIFrameElement.width")}}
      -
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("width", "iframe")}} HTML 属性,标识着该frame的宽度。
      +
      一个 {{domxref("DOMString")}} 反映着 {{htmlattrxref("width", "iframe")}} HTML 属性,标识着该 frame 的宽度。

      方法

      @@ -81,15 +81,15 @@

      管理方法

      {{domxref("HTMLIFrameElement.executeScript()")}}
      在浏览器{{HTMLElement("iframe")}}页面加载完成后执行指定的脚本。
      {{domxref("HTMLIFrameElement.purgeHistory()")}}
      -
      清理所有与浏览器{{HTMLElement("iframe")}}有关的资源(不包括cookie)。
      +
      清理所有与浏览器{{HTMLElement("iframe")}}有关的资源(不包括 cookie)。
      {{domxref("HTMLIFrameElement.setVisible()")}}
      修改浏览器{{HTMLElement("iframe")}}的可见性。这会影响资源分配和一些函数的资源占用率,如{{domxref("window.requestAnimationFrame","requestAnimationFrame")}}。
      {{domxref("HTMLIFrameElement.getVisible()")}}
      指示当前浏览器{{HTMLElement("iframe")}}的可见性。
      {{domxref("HTMLIFrameElement.setActive()")}}
      -
      设置当前{{HTMLElement("iframe")}}为活动frame,对进程管理器如何划分优先级有影响。
      +
      设置当前{{HTMLElement("iframe")}}为活动 frame,对进程管理器如何划分优先级有影响。
      {{domxref("HTMLIFrameElement.getActive()")}}
      -
      指示当前浏览器{{htmlelement("iframe")}}是否为当前活动的frame。
      +
      指示当前浏览器{{htmlelement("iframe")}}是否为当前活动的 frame。
      {{domxref("HTMLIFrameElement.setInputMethodActive()")}}
      设置当前浏览器{{HTMLElement("iframe")}}是活动的输入法编辑器窗口而其他不是。当一个顶层应用希望激活一个窗口作为输入法编辑器(如键盘)时有用。
      {{domxref("HTMLIFrameElement.setNfcFocus()")}}
      diff --git a/files/zh-cn/web/api/htmlimageelement/complete/index.html b/files/zh-cn/web/api/htmlimageelement/complete/index.html index bf2d4187b2aad7..894d629df8ee2c 100644 --- a/files/zh-cn/web/api/htmlimageelement/complete/index.html +++ b/files/zh-cn/web/api/htmlimageelement/complete/index.html @@ -5,7 +5,7 @@ ---

      {{APIRef("HTML DOM")}}

      -

      {{domxref("HTMLImageElement")}} 的只读属性 complete 是一个布尔值, 表示图片是否完全加载完成。

      +

      {{domxref("HTMLImageElement")}} 的只读属性 complete 是一个布尔值,表示图片是否完全加载完成。

      语法

      @@ -13,7 +13,7 @@

      语法

      -

      当图片完全加载完成时值为 true ; 否则,值为 false

      +

      当图片完全加载完成时值为 true ;否则,值为 false

      以下任意一条为 true 则认为图片完全加载完成:

      diff --git a/files/zh-cn/web/api/htmlimageelement/srcset/index.html b/files/zh-cn/web/api/htmlimageelement/srcset/index.html index 109e5d7ff6370b..d1ee09c202286f 100644 --- a/files/zh-cn/web/api/htmlimageelement/srcset/index.html +++ b/files/zh-cn/web/api/htmlimageelement/srcset/index.html @@ -19,13 +19,13 @@

      一个包含单个或多个以逗号分隔的图像候选列表{{domxref("USVString")}} ,表示在{{HTMLElement("img")}}里可以展示哪些图片。

      -

      每个图像候选字符串必须以有效 URL 开头,指向一个非交互的图形资源。 紧接着是一个逗号 (,) 字符。最后是一个条件描述符,该描述符定义了在什么环境下使用该图像。除了分隔 URL 和相应条件描述符的空格之外的空格字符都将被忽略,包括头部和末尾的空格,以及每个逗号前后的空格。

      +

      每个图像候选字符串必须以有效 URL 开头,指向一个非交互的图形资源。紧接着是一个逗号 (,) 字符。最后是一个条件描述符,该描述符定义了在什么环境下使用该图像。除了分隔 URL 和相应条件描述符的空格之外的空格字符都将被忽略,包括头部和末尾的空格,以及每个逗号前后的空格。

      如果没有提供条件描述符(也就是说,图像候选字符只含一个 URL),并没有命中的其他候选,则使用该候选作为回退方案。否则,条件描述符可以采用以下两种形式之一:

        -
      • 要指定在某个宽度下使用特定图像候选代表的图像资源, 请提供 宽度描述符,包含表示该宽度的数字(以像素为单位)+ 小写字母“w”。例如,渲染一个 450 像素宽的图像对应的描述符字符串: 450w。指定的宽度必须是正数、非零整数,并且必须与引用图像的固有宽度相匹配。
      • +
      • 要指定在某个宽度下使用特定图像候选代表的图像资源,请提供 宽度描述符,包含表示该宽度的数字(以像素为单位)+ 小写字母“w”。例如,渲染一个 450 像素宽的图像对应的描述符字符串: 450w。指定的宽度必须是正数、非零整数,并且必须与引用图像的固有宽度相匹配。
      • 或者,您可以使用像素密度描述符,它指定了在什么样的显示器像素密度下应用相应的图像资源。它是通过将像素密度声明为正的非零浮点值,后跟小写字母“x”来编写的。例如,要指定在像素密度是标准密度的两倍时使用相应的图像,您可以提供像素密度描述符 2x2.0x。< /li>
      @@ -83,7 +83,7 @@

      JavaScript

      结果

      -

      输出展示在下面,所选 URL 将取决于您显示的图像版本, 1x 版本还是 2x 版本?。如果您碰巧有标准和高密度显示器,请尝试在它们之间移动此窗口并重新加载页面以查看结果变化。

      +

      输出展示在下面,所选 URL 将取决于您显示的图像版本,1x 版本还是 2x 版本?。如果您碰巧有标准和高密度显示器,请尝试在它们之间移动此窗口并重新加载页面以查看结果变化。

      {{EmbedLiveSample("Example", 640, 320)}}

      有关其他示例,请参阅我们的响应式图片指南。

      diff --git a/files/zh-cn/web/api/htmlinputelement/index.html b/files/zh-cn/web/api/htmlinputelement/index.html index 06ec646120ba72..4a23bf12eb25e6 100644 --- a/files/zh-cn/web/api/htmlinputelement/index.html +++ b/files/zh-cn/web/api/htmlinputelement/index.html @@ -13,7 +13,7 @@ ---
      {{ APIRef("HTML DOM") }}
      -

      HTMLInputElement 接口提供了特定的属性和方法(继承自常规的{{domxref("HTMLElement", "HTML元素")}}接口)用于管理输入元素的布局和外观。

      +

      HTMLInputElement 接口提供了特定的属性和方法(继承自常规的{{domxref("HTMLElement", "HTML 元素")}}接口)用于管理输入元素的布局和外观。

      {{InheritanceDiagram(600,120)}}

      @@ -30,23 +30,23 @@

      属性

      formAction - string: 返回/ 设置 元素的 {{ htmlattrxref("formaction", "input") }} 属性, 包含处理元素提交信息程序的URI. 这会重写父表单的 {{ htmlattrxref("action", "form") }} 属性. + string: 返回/ 设置 元素的 {{ htmlattrxref("formaction", "input") }} 属性,包含处理元素提交信息程序的 URI. 这会重写父表单的 {{ htmlattrxref("action", "form") }} 属性。 formEncType - string: 返回/ 设置 元素的 {{ htmlattrxref("formenctype", "input") }} 属性, 包含将表单提交到服务器的内容类型. 这会重写父表单的 {{ htmlattrxref("enctype", "form") }} 属性. + string: 返回/ 设置 元素的 {{ htmlattrxref("formenctype", "input") }} 属性,包含将表单提交到服务器的内容类型。这会重写父表单的 {{ htmlattrxref("enctype", "form") }} 属性。 formMethod - string: 返回/ 设置 元素的 {{ htmlattrxref("formmethod", "input") }} 属性, 包含浏览器用于提交表单的HTTP方法. 这会重写父表单的 {{ htmlattrxref("method", "form") }} 属性. + string: 返回/ 设置 元素的 {{ htmlattrxref("formmethod", "input") }} 属性,包含浏览器用于提交表单的 HTTP 方法。这会重写父表单的 {{ htmlattrxref("method", "form") }} 属性。 formNoValidate - boolean: 返回/ 设置 元素的 {{ htmlattrxref("formnovalidate", "input") }} 属性, 表示在表单提交时不对其进行验证. 这会重写父表单的 {{ htmlattrxref("novalidate", "form") }} 属性. + boolean: 返回/ 设置 元素的 {{ htmlattrxref("formnovalidate", "input") }} 属性,表示在表单提交时不对其进行验证。这会重写父表单的 {{ htmlattrxref("novalidate", "form") }} 属性。 formTarget - string: 返回/ 设置 元素的 {{ htmlattrxref("formtarget", "input") }} 属性, 包含一个名称或关键字, 表示在提交表单后接收响应的显示位置. 这会重写父表单的 {{ htmlattrxref("target", "form") }} 属性. + string: 返回/ 设置 元素的 {{ htmlattrxref("formtarget", "input") }} 属性,包含一个名称或关键字,表示在提交表单后接收响应的显示位置。这会重写父表单的 {{ htmlattrxref("target", "form") }} 属性。 @@ -56,28 +56,28 @@

      属性

      name - string: 返回/ 设置 元素的 {{ htmlattrxref("name", "input") }} 属性, 包含其名称. + string: 返回/ 设置 元素的 {{ htmlattrxref("name", "input") }} 属性,包含其名称。 type - string: 返回/ 设置 元素的 {{ htmlattrxref("type", "input") }} 属性, 包含其显示类型. 查看 {{ HTMLElement("input") }} 的 {{ htmlattrxref("type", "input") }} 属性可用值. + string: 返回/ 设置 元素的 {{ htmlattrxref("type", "input") }} 属性,包含其显示类型。查看 {{ HTMLElement("input") }} 的 {{ htmlattrxref("type", "input") }} 属性可用值。 disabled - boolean: 返回/ 设置 元素的 {{ htmlattrxref("disabled", "input") }} 属性, 表示是否禁用 {{ HTMLElement("input") }}. 该元素的值将不会被提交. 也可以查看 {{ htmlattrxref("readOnly", "input") }}  + boolean: 返回/ 设置 元素的 {{ htmlattrxref("disabled", "input") }} 属性,表示是否禁用 {{ HTMLElement("input") }}. 该元素的值将不会被提交。也可以查看 {{ htmlattrxref("readOnly", "input") }}  autofocus - boolean: 返回/ 设置 元素的 {{ htmlattrxref("autofocus", "input") }} 属性, 指定的 {{ HTMLElement("input") }} 在页面加载时应当具有输入焦点, 例如通过键入不同的控件. 在文档中只有一个表单元素可以拥有 {{htmlattrxref("autofocus","input")}} 属性. 如果 {{htmlattrxref("type","input")}} 属性被设置为 hidden 则无效(即不可为隐藏控件设置自动焦点). + boolean: 返回/ 设置 元素的 {{ htmlattrxref("autofocus", "input") }} 属性,指定的 {{ HTMLElement("input") }} 在页面加载时应当具有输入焦点,例如通过键入不同的控件。在文档中只有一个表单元素可以拥有 {{htmlattrxref("autofocus","input")}} 属性。如果 {{htmlattrxref("type","input")}} 属性被设置为 hidden 则无效 (即不可为隐藏控件设置自动焦点). required - boolean: 返回/ 设置 元素的 {{ htmlattrxref("required", "input") }} 属性, 表示用户必填项. + boolean: 返回/ 设置 元素的 {{ htmlattrxref("required", "input") }} 属性,表示用户必填项。 value - string: 返回/ 设置 当前控件的值. -

      提示: 如果用户输入与预期不同,可能会返回空.

      + string: 返回/ 设置 当前控件的值。 +

      提示: 如果用户输入与预期不同,可能会返回空。

      @@ -108,7 +108,7 @@

      属性

      indeterminate - boolean: indicates that the checkbox is neither on nor off. Changes the appearance to resemble a third state. Does not affect the value of the checked 属性, and clicking the checkbox will set the value to false. + boolean: indicates that the checkbox is neither on nor off. Changes the appearance to resemble a third state. Does not affect the value of the checked 属性,and clicking the checkbox will set the value to false. @@ -118,19 +118,19 @@

      属性

      alt - string: 返回/ 设置 元素的 {{ htmlattrxref("alt", "input") }} 属性, 包含 alternative text to use when {{htmlattrxref("type","input")}} is image. + string: 返回/ 设置 元素的 {{ htmlattrxref("alt", "input") }} 属性,包含 alternative text to use when {{htmlattrxref("type","input")}} is image. height - string: 返回/ 设置 元素的 {{ htmlattrxref("height", "input") }} 属性, which defines the height of the image displayed for the button, if the value of {{htmlattrxref("type","input")}} is image. + string: 返回/ 设置 元素的 {{ htmlattrxref("height", "input") }} 属性,which defines the height of the image displayed for the button, if the value of {{htmlattrxref("type","input")}} is image. src - string: 返回/ 设置 元素的 {{ htmlattrxref("src", "input") }} 属性, which specifies a URI for the location of an image to display on the graphical submit button, if the value of {{htmlattrxref("type","input")}} is image; otherwise it is ignored. + string: 返回/ 设置 元素的 {{ htmlattrxref("src", "input") }} 属性,which specifies a URI for the location of an image to display on the graphical submit button, if the value of {{htmlattrxref("type","input")}} is image; otherwise it is ignored. width - string: 返回/ 设置 the document's {{ htmlattrxref("width", "input") }} 属性, which defines the width of the image displayed for the button, if the value of {{htmlattrxref("type","input")}} is image. + string: 返回/ 设置 the document's {{ htmlattrxref("width", "input") }} 属性,which defines the width of the image displayed for the button, if the value of {{htmlattrxref("type","input")}} is image. @@ -140,7 +140,7 @@

      属性

      accept - string: Returns / Sets 元素的 {{ htmlattrxref("accept", "input") }} 属性, 包含 comma-separated list of file types accepted by the server when {{htmlattrxref("type","input")}} is file. + string: Returns / Sets 元素的 {{ htmlattrxref("accept", "input") }} 属性,包含 comma-separated list of file types accepted by the server when {{htmlattrxref("type","input")}} is file. allowdirs {{non-standard_inline}} @@ -166,38 +166,38 @@

      属性

      autocomplete - string: 返回/ 设置 元素的 {{htmlattrxref("autocomplete", "input")}} 属性, indicating whether the value of the control can be automatically completed by the browser. Ignored if the value of the {{htmlattrxref("type","input")}} 属性is hidden, checkbox, radio, file, or a button type (button, submit, reset, image). Possible values are:
      + string: 返回/ 设置 元素的 {{htmlattrxref("autocomplete", "input")}} 属性,indicating whether the value of the control can be automatically completed by the browser. Ignored if the value of the {{htmlattrxref("type","input")}} 属性 is hidden, checkbox, radio, file, or a button type (button, submit, reset, image). Possible values are:
      "on": the browser can autocomplete the value using previously stored value
      "off": the user must explicity enter a value maxLength - long: 返回/ 设置 元素的 {{ htmlattrxref("maxlength", "input") }} 属性, 包含 the maximum length of characters (in Unicode code points) that the value can have. (If you set this to a negative number, an exception will be thrown.) + long: 返回/ 设置 元素的 {{ htmlattrxref("maxlength", "input") }} 属性,包含 the maximum length of characters (in Unicode code points) that the value can have. (If you set this to a negative number, an exception will be thrown.) size - unsigned long: 返回/ 设置 元素的 {{ htmlattrxref("size", "input") }} 属性, 包含 size of the control. This value is in pixels unless the value of {{htmlattrxref("type","input")}} is text or password, in which case, it is an integer number of characters. Applies only when {{htmlattrxref("type","input")}} is set to text, search, tel, url, email, or password; otherwise it is ignored. + unsigned long: 返回/ 设置 元素的 {{ htmlattrxref("size", "input") }} 属性,包含 size of the control. This value is in pixels unless the value of {{htmlattrxref("type","input")}} is text or password, in which case, it is an integer number of characters. Applies only when {{htmlattrxref("type","input")}} is set to text, search, tel, url, email, or password; otherwise it is ignored. pattern - string: 返回/ 设置 元素的 {{ htmlattrxref("pattern", "input") }} 属性, 包含 a regular expression that the control's value is checked against.  Use the {{htmlattrxref("title","input")}} 属性to describe the pattern to help the user. This 属性applies when the value of the {{htmlattrxref("type","input")}} 属性is text, search, tel, url or email; otherwise it is ignored. + string: 返回/ 设置 元素的 {{ htmlattrxref("pattern", "input") }} 属性,包含 a regular expression that the control's value is checked against.  Use the {{htmlattrxref("title","input")}} 属性 to describe the pattern to help the user. This 属性 applies when the value of the {{htmlattrxref("type","input")}} 属性 is text, search, tel, url or email; otherwise it is ignored. placeholder - string: 返回/ 设置 元素的 {{ htmlattrxref("placeholder", "input") }} 属性, 包含 a hint to the user of what can be entered in the control. The placeholder text must not contain carriage returns or line-feeds. This 属性applies when the value of the {{htmlattrxref("type","input")}} 属性is text, search, tel, url or email; otherwise it is ignored. + string: 返回/ 设置 元素的 {{ htmlattrxref("placeholder", "input") }} 属性,包含 a hint to the user of what can be entered in the control. The placeholder text must not contain carriage returns or line-feeds. This 属性 applies when the value of the {{htmlattrxref("type","input")}} 属性 is text, search, tel, url or email; otherwise it is ignored. readOnly - boolean: 返回/ 设置 元素的 {{ htmlattrxref("readonly", "input") }} 属性, indicating that the user cannot modify the value of the control.
      - {{HTMLVersionInline(5)}}This is ignored if the value of the {{htmlattrxref("type","input")}} 属性is hidden, range, color, checkbox, radio, file, or a button type. + boolean: 返回/ 设置 元素的 {{ htmlattrxref("readonly", "input") }} 属性,indicating that the user cannot modify the value of the control.
      + {{HTMLVersionInline(5)}}This is ignored if the value of the {{htmlattrxref("type","input")}} 属性 is hidden, range, color, checkbox, radio, file, or a button type. min - string: 返回/ 设置 元素的 {{ htmlattrxref("min", "input") }} 属性, 包含 the minimum (numeric or date-time) value for this item, which must not be greater than its maximum ({{htmlattrxref("max","input")}} 属性) value. + string: 返回/ 设置 元素的 {{ htmlattrxref("min", "input") }} 属性,包含 the minimum (numeric or date-time) value for this item, which must not be greater than its maximum ({{htmlattrxref("max","input")}} 属性) value. max - string: 返回/ 设置 元素的 {{ htmlattrxref("max", "input") }} 属性, 包含 the maximum (numeric or date-time) value for this item, which must not be less than its minimum (min 属性) value. + string: 返回/ 设置 元素的 {{ htmlattrxref("max", "input") }} 属性,包含 the maximum (numeric or date-time) value for this item, which must not be less than its minimum (min 属性) value. selectionStart @@ -234,11 +234,11 @@

      属性

      list {{readonlyInline}} - {{domxref("HTMLElement")}} object: 返回 the element pointed by the {{ htmlattrxref("list", "input") }} 属性. The property may be null if no HTML element found in the same tree. + {{domxref("HTMLElement")}} object: 返回 the element pointed by the {{ htmlattrxref("list", "input") }} 属性。The property may be null if no HTML element found in the same tree. multiple - boolean: 返回/ 设置 元素的 {{ htmlattrxref("multiple", "input") }} 属性, indicating whether more than one value is possible (e.g., multiple files). + boolean: 返回/ 设置 元素的 {{ htmlattrxref("multiple", "input") }} 属性,indicating whether more than one value is possible (e.g., multiple files). files @@ -250,7 +250,7 @@

      属性

      step - string: 返回/ 设置 元素的 {{ htmlattrxref("step", "input") }} 属性, which works with {{htmlattrxref("min","input")}} and {{htmlattrxref("max","input")}} to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this is not set to any, the control accepts only values at multiples of the step value greater than the minimum. + string: 返回/ 设置 元素的 {{ htmlattrxref("step", "input") }} 属性,which works with {{htmlattrxref("min","input")}} and {{htmlattrxref("max","input")}} to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this is not set to any, the control accepts only values at multiples of the step value greater than the minimum. valueAsDate diff --git a/files/zh-cn/web/api/htmlinputelement/labels/index.html b/files/zh-cn/web/api/htmlinputelement/labels/index.html index 08c4e1ec33cf95..dcd77df5dc94e7 100644 --- a/files/zh-cn/web/api/htmlinputelement/labels/index.html +++ b/files/zh-cn/web/api/htmlinputelement/labels/index.html @@ -16,7 +16,7 @@

      语法

      Return value

      -

       {{domxref("NodeList")}} 包含 <label> 元素和 <input> 元素.

      +

       {{domxref("NodeList")}} 包含 <label> 元素和 <input> 元素。

      实例

      diff --git a/files/zh-cn/web/api/htmlinputelement/multiple/index.html b/files/zh-cn/web/api/htmlinputelement/multiple/index.html index d99a4c11537bdb..47c57402de0d63 100644 --- a/files/zh-cn/web/api/htmlinputelement/multiple/index.html +++ b/files/zh-cn/web/api/htmlinputelement/multiple/index.html @@ -5,7 +5,7 @@ ---
      {{ APIRef("HTML DOM") }}
      -

      HTMLInputElement.multiple 属性表示一个input是否可以有多个值。目前只有火狐支持 <input type="file">存有多个值。

      +

      HTMLInputElement.multiple 属性表示一个 input 是否可以有多个值。目前只有火狐支持 <input type="file">存有多个值。

      实例

      diff --git a/files/zh-cn/web/api/htmlinputelement/setselectionrange/index.html b/files/zh-cn/web/api/htmlinputelement/setselectionrange/index.html index b571e8cf9aade7..ce4a468b92b44d 100644 --- a/files/zh-cn/web/api/htmlinputelement/setselectionrange/index.html +++ b/files/zh-cn/web/api/htmlinputelement/setselectionrange/index.html @@ -18,7 +18,7 @@

      每次调用这个这个方法都会更新 HTMLInputElementselectionStart, selectionEnd 和 selectionDirection 属性。

      -

      要注意的是,在 WHATWG forms spec 中,selectionStartselectionEnd 属性和 setSelectionRange 方法只能应用于类型为文本、搜索、链接、电话号码和密码的输入。Chrome 从版本 33 开始会在访问其余类型的这些属性和方法时抛出异常。例如,输入类型为数字时会抛出:“不能从'HTMLInputElement'中读取'selectionStart'属性:输入元素的类型('number')不支持选择(Failed to read the 'selectionStart' property from 'HTMLInputElement': The input element's type ('number') does not support selection)”。

      +

      要注意的是,在 WHATWG forms spec 中,selectionStartselectionEnd 属性和 setSelectionRange 方法只能应用于类型为文本、搜索、链接、电话号码和密码的输入。Chrome 从版本 33 开始会在访问其余类型的这些属性和方法时抛出异常。例如,输入类型为数字时会抛出:“不能从'HTMLInputElement'中读取'selectionStart'属性:输入元素的类型 ('number') 不支持选择(Failed to read the 'selectionStart' property from 'HTMLInputElement': The input element's type ('number') does not support selection)”。

      如果你希望全选输入元素中的文本,你可以使用 HTMLInputElement.select() 方法。

      @@ -32,9 +32,9 @@

      参数

      selectionStart
      -
      被选中的第一个字符的位置索引,从0开始。如果这个值比元素的 value 长度还大,则会被看作 value 最后一个位置的索引。
      +
      被选中的第一个字符的位置索引,从 0 开始。如果这个值比元素的 value 长度还大,则会被看作 value 最后一个位置的索引。
      selectionEnd
      -
      被选中的最后一个字符的 下一个 位置索引。如果这个值比元素的value长度还大,则会被看作value最后一个位置的索引。
      +
      被选中的最后一个字符的 下一个 位置索引。如果这个值比元素的 value 长度还大,则会被看作 value 最后一个位置的索引。
      selectionDirection {{optional_inline}}
      一个表示选择方向的字符串,可能的值有:
      diff --git a/files/zh-cn/web/api/htmlinputelement/webkitdirectory/index.html b/files/zh-cn/web/api/htmlinputelement/webkitdirectory/index.html index 6d96088d9807ca..80fbf7e8178d4c 100644 --- a/files/zh-cn/web/api/htmlinputelement/webkitdirectory/index.html +++ b/files/zh-cn/web/api/htmlinputelement/webkitdirectory/index.html @@ -18,7 +18,7 @@

      {{APIRef("HTML DOM")}}{{non-standard_header}}

      - HTMLInputElement.webkitdirectory是属于{{HTMLElement("input")}}元素的一个HTML属性{{htmlattrxref("webkitdirectory", "input")}},它指示<input>元素应该允许用户选择文件目录,而不是文件。当一个文件目录被选中,该目录及其整个内容层次结构将包含在所选项目集里面。可以使用{{domxref("HTMLInputElement.webkitEntries", + HTMLInputElement.webkitdirectory是属于{{HTMLElement("input")}}元素的一个 HTML 属性{{htmlattrxref("webkitdirectory", "input")}},它指示<input>元素应该允许用户选择文件目录,而不是文件。当一个文件目录被选中,该目录及其整个内容层次结构将包含在所选项目集里面。可以使用{{domxref("HTMLInputElement.webkitEntries", "webkitEntries")}}属性获取选定的文件系统条目。

      语法

      @@ -77,19 +77,19 @@

      了解结果

      注意:Chromium < 72里,webkitRelativePath的行为表现有所不同。有关更多详细信息,请参见此bug

      + href="https://bugs.chromium.org/p/chromium/issues/detail?id=124187">此 bug。

      示例

      在这个例子中,提供了一个目录选择器,它使用户可以选择一个或多个目录。当{{event("change")}}事件被触发的时候,将生成并显示所选目录层次结构中包含的所有文件的列表。

      -

      HTML内容

      +

      HTML 内容

      <input type="file" id="filepicker" name="fileList" webkitdirectory multiple />
       <ul id="listing"></ul>
      -

      JavaScript内容

      +

      JavaScript 内容

      document.getElementById("filepicker").addEventListener("change", function(event) {
         let output = document.getElementById("listing");
      @@ -127,7 +127,7 @@ 

      规范

      -

      这个API没有官方的W3C或者WHATWG规范。

      +

      这个 API 没有官方的 W3C 或者 WHATWG 规范。

      浏览器兼容性

      @@ -136,7 +136,7 @@

      浏览器兼容性

      参见

      diff --git a/files/zh-cn/web/api/htmllielement/index.html b/files/zh-cn/web/api/htmllielement/index.html index 9b6945f4ee25eb..bdf2c255adb970 100644 --- a/files/zh-cn/web/api/htmllielement/index.html +++ b/files/zh-cn/web/api/htmllielement/index.html @@ -10,7 +10,7 @@ ---
      {{APIRef("HTML DOM")}}
      -

      HTMLLIElement 接口公开了特定的属性和方法(超出了常规 {{domxref("HTMLElement")}} 接口所定义的接口,它通过继承可用于操作列表元素。

      +

      HTMLLIElement 接口公开了特定的属性和方法 (超出了常规 {{domxref("HTMLElement")}} 接口所定义的接口,它通过继承可用于操作列表元素。

      {{InheritanceDiagram(600,120)}}

      @@ -22,7 +22,7 @@

      属性

      {{domxref("HTMLLIElement.type")}} {{obsolete_inline}}
      是{{domxref("DOMString")}}表示项目符号的类型 "disc""square""circle"。由于定义列表类型的标准方法是通过 CSS {{cssxref("list-style-type")}}属性,应当使用 CSSOM 方法通过脚本设置它。
      {{domxref( "HTMLLIElement.value")}}
      -
      long指示给定{{HTMLElement("ol")}}中列表元素的序号位置。它反映了HTML {{HTMLElement("li")}}元素的{{htmlattrxref("value","li")}}属性,并且可以小于0。如果{{HTMLElement("li")}}元素不是{{HTMLElement("ol")}}元素的子元素,则该属性没有意义。
      +
      long指示给定{{HTMLElement("ol")}}中列表元素的序号位置。它反映了 HTML {{HTMLElement("li")}}元素的{{htmlattrxref("value","li")}}属性,并且可以小于0。如果{{HTMLElement("li")}}元素不是{{HTMLElement("ol")}}元素的子元素,则该属性没有意义。

      方法

      diff --git a/files/zh-cn/web/api/htmllinkelement/referrerpolicy/index.html b/files/zh-cn/web/api/htmllinkelement/referrerpolicy/index.html index bff3e554ec1178..9b43834fc09e02 100644 --- a/files/zh-cn/web/api/htmllinkelement/referrerpolicy/index.html +++ b/files/zh-cn/web/api/htmllinkelement/referrerpolicy/index.html @@ -7,9 +7,9 @@

       

      -

      HTMLLinkElement.referrerPolicy 反映了 {{HTMLElement("link")}} 元素的HTML属性 {{htmlattrxref("referrerpolicy","link")}} 的定义,这个属性定义了{{HTMLElement("link")}} 元素在获取资源时的引用方式。

      +

      HTMLLinkElement.referrerPolicy 反映了 {{HTMLElement("link")}} 元素的 HTML 属性 {{htmlattrxref("referrerpolicy","link")}} 的定义,这个属性定义了{{HTMLElement("link")}} 元素在获取资源时的引用方式。

      -

      详情请参考HTTP header中的  {{HTTPHeader("Referrer-Policy")}} 。

      +

      详情请参考 HTTP header 中的  {{HTTPHeader("Referrer-Policy")}} 。

       

      diff --git a/files/zh-cn/web/api/htmlmediaelement/canplaytype/index.html b/files/zh-cn/web/api/htmlmediaelement/canplaytype/index.html index 387038b9170376..a5be0491ff0d8e 100644 --- a/files/zh-cn/web/api/htmlmediaelement/canplaytype/index.html +++ b/files/zh-cn/web/api/htmlmediaelement/canplaytype/index.html @@ -36,7 +36,7 @@

      返回值

    -

    提醒: 以前 canPlayType('video/webm') 会返回 'probably'。从 Gecko 28 {{geckoRelease(28)}} 开始, 将返回 'maybe'。 ({{bug(884275)}})

    +

    提醒: 以前 canPlayType('video/webm') 会返回 'probably'。从 Gecko 28 {{geckoRelease(28)}} 开始,将返回 'maybe'。 ({{bug(884275)}})

    示例

    diff --git a/files/zh-cn/web/api/htmlmediaelement/duration/index.html b/files/zh-cn/web/api/htmlmediaelement/duration/index.html index 57788ae590507f..41a37d8f67177c 100644 --- a/files/zh-cn/web/api/htmlmediaelement/duration/index.html +++ b/files/zh-cn/web/api/htmlmediaelement/duration/index.html @@ -18,7 +18,7 @@

    语法

    -

     如果媒体数据可用但长度未知,则此值为 NaN。 如果媒体流式传输且没有预定义长度,则值为 Inf。

    +

     如果媒体数据可用但长度未知,则此值为 NaN。如果媒体流式传输且没有预定义长度,则值为 Inf。

    例子

    diff --git a/files/zh-cn/web/api/htmlmediaelement/index.html b/files/zh-cn/web/api/htmlmediaelement/index.html index 9bdb37f1435ac7..5457e14eaaea8c 100644 --- a/files/zh-cn/web/api/htmlmediaelement/index.html +++ b/files/zh-cn/web/api/htmlmediaelement/index.html @@ -115,7 +115,7 @@

    特性

    mediaGroup {{domxref("DOMString")}} - 反映在 HTML {{ htmlattrxref("mediagroup", "video")}} 标签上。 表示元素所归属的分组,同一组的媒体元素会共享同一个控制器(controller)。 + 反映在 HTML {{ htmlattrxref("mediagroup", "video")}} 标签上。表示元素所归属的分组,同一组的媒体元素会共享同一个控制器(controller)。 mediaKeys {{experimental_inline}}{{readonlyinline}} diff --git a/files/zh-cn/web/api/htmlmediaelement/playbackrate/index.html b/files/zh-cn/web/api/htmlmediaelement/playbackrate/index.html index 8347b51e14587f..6c2a7d80400c0f 100644 --- a/files/zh-cn/web/api/htmlmediaelement/playbackrate/index.html +++ b/files/zh-cn/web/api/htmlmediaelement/playbackrate/index.html @@ -27,7 +27,7 @@

    语法

    赋值说明

    -

    浮点数 1.0 是 "正常速度", 比 1.0 小的值使媒体文件播放的慢于正常速度,比 1.0 大的值使播放变得快于正常速度。

    +

    浮点数 1.0 是 "正常速度",比 1.0 小的值使媒体文件播放的慢于正常速度,比 1.0 大的值使播放变得快于正常速度。

    示例

    diff --git a/files/zh-cn/web/api/htmlmediaelement/srcobject/index.html b/files/zh-cn/web/api/htmlmediaelement/srcobject/index.html index 9761300bc482c9..5733fbfbcfa208 100644 --- a/files/zh-cn/web/api/htmlmediaelement/srcobject/index.html +++ b/files/zh-cn/web/api/htmlmediaelement/srcobject/index.html @@ -8,7 +8,7 @@

    {{domxref("HTMLMediaElement")}} 接口的 srcObject 属性设定或返回一个对象,这个对象提供了一个与{{domxref("HTMLMediaElement")}}关联的媒体源,这个对象通常是 {{domxref("MediaStream")}} ,但根据规范可以是 {{domxref("MediaSource")}}, {{domxref("Blob")}} 或者 {{domxref("File")}}。

    -

    备注: 截至 2020 年 3 月,只有 Safari 支持设置 MediaStream  之外的对象。在其他浏览器跟上之前,对MediaSource, Blob 和 File, 请考虑返回创建具有{domxref("URL.createObjectURL()")}} 的 URL, 并将其赋值给{{domxref("HTMLMediaElement.src")}} 有关示例,请参阅下文。

    +

    备注: 截至 2020 年 3 月,只有 Safari 支持设置 MediaStream  之外的对象。在其他浏览器跟上之前,对MediaSource, Blob 和 File, 请考虑返回创建具有{domxref("URL.createObjectURL()")}} 的 URL,并将其赋值给{{domxref("HTMLMediaElement.src")}} 有关示例,请参阅下文。

    diff --git a/files/zh-cn/web/api/htmloptionelement/index.html b/files/zh-cn/web/api/htmloptionelement/index.html index 4272e516eb5cec..ecb60de1980184 100644 --- a/files/zh-cn/web/api/htmloptionelement/index.html +++ b/files/zh-cn/web/api/htmloptionelement/index.html @@ -19,7 +19,7 @@

    属性

    -

    继承自其父类属性, {{domxref("HTMLElement")}}.

    +

    继承自其父类属性,{{domxref("HTMLElement")}}.

    @@ -33,7 +33,7 @@

    属性

    - + @@ -51,20 +51,20 @@

    属性

    - + @@ -75,7 +75,7 @@

    属性

    @@ -83,10 +83,10 @@

    属性

    方法

    -

    方法继承自其父类, {{domxref("HTMLElement")}}.

    +

    方法继承自其父类,{{domxref("HTMLElement")}}.

    -
    {{domxref("HTMLOptionElement.Option()")}}是一个创建HTMLOptionElement对象的构造函数。 它有四个值:要显示的文本,文本,关联的值,,defaultSelected的值以及所选的值。 最后三个值是可选的。
    +
    {{domxref("HTMLOptionElement.Option()")}}是一个创建HTMLOptionElement对象的构造函数。它有四个值:要显示的文本,文本,关联的值,,defaultSelected 的值以及所选的值。最后三个值是可选的。

    格式

    @@ -128,5 +128,5 @@

    浏览器兼容性

    参见

      -
    • 实现此接口的HTML元素 : {{HTMLElement("option")}}。
    • +
    • 实现此接口的 HTML 元素 : {{HTMLElement("option")}}。
    diff --git a/files/zh-cn/web/api/htmlparagraphelement/index.html b/files/zh-cn/web/api/htmlparagraphelement/index.html index bca99399d1174b..3c7475530a524d 100644 --- a/files/zh-cn/web/api/htmlparagraphelement/index.html +++ b/files/zh-cn/web/api/htmlparagraphelement/index.html @@ -9,7 +9,7 @@ -

    HTMLParagraphElement 接口可以提供超过其继承的{{domxref("HTMLElement")}} 对象额外的属性 ,用以操作 {{HTMLElement("p")}} 元素.

    +

    HTMLParagraphElement 接口可以提供超过其继承的{{domxref("HTMLElement")}} 对象额外的属性 ,用以操作 {{HTMLElement("p")}} 元素。

    {{InheritanceDiagram(600, 120)}}

    diff --git a/files/zh-cn/web/api/htmlscriptelement/index.html b/files/zh-cn/web/api/htmlscriptelement/index.html index 60b4a1c2c70550..38bac205a52ae9 100644 --- a/files/zh-cn/web/api/htmlscriptelement/index.html +++ b/files/zh-cn/web/api/htmlscriptelement/index.html @@ -5,12 +5,12 @@ ---
    {{ APIRef("HTML DOM") }}
    -

    HTML脚本元素暴露HTMLScriptElement接口,它提供了特殊的属性和方法(超出了常规HTMLElement对象接口,他们也可以通过继承操纵<脚本>元素的布局和演示。)
    +

    HTML 脚本元素暴露 HTMLScriptElement 接口,它提供了特殊的属性和方法 (超出了常规 HTMLElement 对象接口,他们也可以通过继承操纵<脚本>元素的布局和演示。)
     

    Properties

    -

    从其父类中继承的属性, {{domxref("HTMLElement")}}。
    +

    从其父类中继承的属性,{{domxref("HTMLElement")}}。
     

    defaultSelected {{domxref("Boolean")}}包含了{{htmlattrxref("selected", "option")}} HTML 特性的初始值, 指示默认情况下是否选择该选项。包含了{{htmlattrxref("selected", "option")}} HTML 特性的初始值,指示默认情况下是否选择该选项。
    disabled index{{readonlyInline}} long -

    该选项在其所属的选项列表中的位置,以树形顺序排列。 如果该选项不是选项列表的一部分,例如为 {{HTMLElement("datalist")}} 元素的一部分时,该值为0

    +

    该选项在其所属的选项列表中的位置,以树形顺序排列。如果该选项不是选项列表的一部分,例如为 {{HTMLElement("datalist")}} 元素的一部分时,该值为0

    label {{domxref("DOMString")}} -

    反映{{htmlattrxref("label", "option")}} HTML特性的值,该属性为选项提供了一个标签。 如果没有特别设置此属性,读取它返回元素的文本内容。

    +

    反映{{htmlattrxref("label", "option")}} HTML 特性的值,该属性为选项提供了一个标签。如果没有特别设置此属性,读取它返回元素的文本内容。

    selected {{domxref("Boolean")}}表示当前该option是否被选择。表示当前该 option 是否被选择。
    text value {{domxref("DOMString")}} -

    反映{{htmlattrxref("value", "option")}} HTML特性的值(如果存在);否则反映{{domxref("Node.textContent")}} 特性的值。

    +

    反映{{htmlattrxref("value", "option")}} HTML 特性的值(如果存在);否则反映{{domxref("Node.textContent")}} 特性的值。

    @@ -23,7 +23,7 @@

    Properties

    - + @@ -33,12 +33,12 @@

    Properties

    - + - + @@ -49,13 +49,13 @@

    Properties

    @@ -65,15 +65,15 @@

    Properties

    - + @@ -81,13 +81,13 @@

    Properties

    Methods

    -

    没有具体的方法;属性从其父类继承, {{domxref("HTMLElement")}}。

    +

    没有具体的方法;属性从其父类继承, {{domxref("HTMLElement")}}。

    例子

    动态导入脚本

    -

    让我们创建一个名为importScript的函数,它能够在一个文档中导入新的脚本,创建一个{{HTMLElement("script")}} 节点,并立即插入到宿主{{HTMLElement("script")}} 之前 (通过 {{domxref("document.currentScript")}} 可以获取宿主script标签)。这些脚本将异步执行。更多细节,请参见defer和async属性。

    +

    让我们创建一个名为 importScript 的函数,它能够在一个文档中导入新的脚本,创建一个{{HTMLElement("script")}} 节点,并立即插入到宿主{{HTMLElement("script")}} 之前 (通过 {{domxref("document.currentScript")}} 可以获取宿主 script 标签)。这些脚本将异步执行。更多细节,请参见 defer 和 async 属性。

    function loadError (oError) {
       throw new URIError("The script " + oError.target.src + " is not accessible.");
    @@ -104,7 +104,7 @@ 

    动态导入脚本

    …the same thing, but appending the new scripts as last childs of the {{ HTMLElement("head") }} tag, instead of appending them immediately before the {{domxref("document.currentScript")}} element:

    -

    与上面大致相同,但有一点不同的是 新创建的script标签插入到了{{HTMLElement("head")}}标签的的最后,而不是插入到了{{domxref("document.currentScript")}}元素之前:

    +

    与上面大致相同,但有一点不同的是 新创建的 script 标签插入到了{{HTMLElement("head")}}标签的的最后,而不是插入到了{{domxref("document.currentScript")}}元素之前:

    var importScript = (function (oHead) {
     
    @@ -124,7 +124,7 @@ 

    动态导入脚本

    })(document.head || document.getElementsByTagName("head")[0]);
    -

    示例用法:

    +

    示例用法:

    importScript("myScript1.js");
     importScript("myScript2.js", /* onload function: */ function () { alert("You read this alert because the script \"myScript2.js\" has been correctly loaded."); });
    diff --git a/files/zh-cn/web/api/htmlselectelement/checkvalidity/index.html b/files/zh-cn/web/api/htmlselectelement/checkvalidity/index.html index b2840ec1c5eb3b..bfe9129260f7d4 100644 --- a/files/zh-cn/web/api/htmlselectelement/checkvalidity/index.html +++ b/files/zh-cn/web/api/htmlselectelement/checkvalidity/index.html @@ -5,7 +5,7 @@ ---
    {{ APIRef("HTML DOM") }}
    -

    HTMLSelectElement.checkValidity() 会检查元素是否有任何输入约束条件,并且检查值是否符合约束条件. 如果值是不符合约束条件的, 浏览器就会在该元素上触发一个可以撤销的 {{event("invalid")}} 事件,  然后返回 false.

    +

    HTMLSelectElement.checkValidity() 会检查元素是否有任何输入约束条件,并且检查值是否符合约束条件。如果值是不符合约束条件的,浏览器就会在该元素上触发一个可以撤销的 {{event("invalid")}} 事件, 然后返回 false.

    Syntax

    diff --git a/files/zh-cn/web/api/htmlselectelement/selectedindex/index.html b/files/zh-cn/web/api/htmlselectelement/selectedindex/index.html index 95d04afc9cd531..438c347556bc3c 100644 --- a/files/zh-cn/web/api/htmlselectelement/selectedindex/index.html +++ b/files/zh-cn/web/api/htmlselectelement/selectedindex/index.html @@ -5,14 +5,14 @@ - API - HTML DOM - HTMLSelectElement - - HTML表单 + - HTML 表单 - 参考 - 属性 translation_of: Web/API/HTMLSelectElement/selectedIndex ---
    {{APIRef("HTML DOM")}}
    -

    HTMLSelectElement.selectedIndex 是一个长整型数,它反映了被选中的第一个 {{HTMLElement("option")}} 元素的索引值。值为-1时表明没有元素被选中。

    +

    HTMLSelectElement.selectedIndex 是一个长整型数,它反映了被选中的第一个 {{HTMLElement("option")}} 元素的索引值。值为 -1 时表明没有元素被选中。

    语法

    @@ -43,7 +43,7 @@

    JavaScript

    // 当有新的<option>元素被选中时 selectElem.addEventListener('change', function() { var index = selectElem.selectedIndex; - // 把index数据添加到p元素中 + // 把 index 数据添加到 p 元素中 pElem.innerHTML = 'selectedIndex: ' + index; })
    diff --git a/files/zh-cn/web/api/htmlslotelement/index.html b/files/zh-cn/web/api/htmlslotelement/index.html index 180dd1b6b8f560..c1b564de45249f 100644 --- a/files/zh-cn/web/api/htmlslotelement/index.html +++ b/files/zh-cn/web/api/htmlslotelement/index.html @@ -5,7 +5,7 @@ ---

    {{SeeCompatTable}}{{APIRef('Web Components')}}

    -

    Shadow DOM API 的接口HTMLSlotElement使其能够访问到HTML元素<slot>的名字和分配的节点

    +

    Shadow DOM API 的接口 HTMLSlotElement 使其能够访问到 HTML 元素<slot>的名字和分配的节点

    属性

    @@ -13,7 +13,7 @@
    {{domxref('HTMLSlotElement.name')}}
    -
    {{domxref("DOMString")}}: 可以用来设置和获取slot的名字
    +
    {{domxref("DOMString")}}: 可以用来设置和获取 slot 的名字

    方法

    diff --git a/files/zh-cn/web/api/htmlslotelement/name/index.html b/files/zh-cn/web/api/htmlslotelement/name/index.html index b00202e0564878..e76ddbb49d3c3d 100644 --- a/files/zh-cn/web/api/htmlslotelement/name/index.html +++ b/files/zh-cn/web/api/htmlslotelement/name/index.html @@ -5,13 +5,13 @@ - name - 名称 - 属性 - - 影子DOM + - 影子 DOM - 插槽 translation_of: Web/API/HTMLSlotElement/name ---

    {{APIRef("Shadow DOM API")}}

    -

     元素{{domxref("HTMLSlotElement")}}的name属性, 可以获取和设置属性值. 插槽提供了web组件的摆放位置,辅助用户布局。

    +

     元素{{domxref("HTMLSlotElement")}}的name属性,可以获取和设置属性值。插槽提供了 web 组件的摆放位置,辅助用户布局。

    语法

    @@ -33,9 +33,9 @@

    例子

      console.log('Element in Slot "' + slots[1].name + '" changed to "' + nodes[0].outerHTML + '".'); }); -

    这里我们获取所有插槽的引用, 然后给模板里的第二个插槽增加事件— 跟踪内容变化.

    +

    这里我们获取所有插槽的引用,然后给模板里的第二个插槽增加事件— 跟踪内容变化。

    -

    每当附加在插槽中的内容变化, 我们都记录插槽相关的内容.

    +

    每当附加在插槽中的内容变化,我们都记录插槽相关的内容。

    规格

    diff --git a/files/zh-cn/web/api/htmlstyleelement/index.html b/files/zh-cn/web/api/htmlstyleelement/index.html index c54eaee1e2bd1b..62e48a7bb4f853 100644 --- a/files/zh-cn/web/api/htmlstyleelement/index.html +++ b/files/zh-cn/web/api/htmlstyleelement/index.html @@ -14,7 +14,7 @@

    HTMLStyleElement 接口表示 {{HTMLElement("style")}} 元素。它从 {{domxref("HTMLElement")}} 和 {{domxref("LinkStyle")}} 中继承属性和方法。

    -

    这个接口不允许修改包含其中的CSS(大多数情况下)。如果需要修改CSS,前往关于使用动态样式的信息查看在DOM中用于修改特定CSS属性的对象。

    +

    这个接口不允许修改包含其中的 CSS(大多数情况下)。如果需要修改 CSS,前往关于使用动态样式的信息查看在 DOM 中用于修改特定 CSS 属性的对象。

    {{InheritanceDiagram(600, 120)}}

    diff --git a/files/zh-cn/web/api/htmltableelement/createcaption/index.html b/files/zh-cn/web/api/htmltableelement/createcaption/index.html index 86aa3ab21b61e5..e47367e0f708b4 100644 --- a/files/zh-cn/web/api/htmltableelement/createcaption/index.html +++ b/files/zh-cn/web/api/htmltableelement/createcaption/index.html @@ -9,7 +9,7 @@ -

    这个 HTMLTableElement.createCaption() 方法返回这个 table 元素的 caption(HTMLTableCaptionElement). 如果这个 table 没有 caption,这个方法创建并返回 caption.

    +

    这个 HTMLTableElement.createCaption() 方法返回这个 table 元素的 caption(HTMLTableCaptionElement). 如果这个 table 没有 caption,这个方法创建并返回 caption.

    语法

    diff --git a/files/zh-cn/web/api/htmltableelement/index.html b/files/zh-cn/web/api/htmltableelement/index.html index a4c1f7ee7e3c95..6f062ff9ae0166 100644 --- a/files/zh-cn/web/api/htmltableelement/index.html +++ b/files/zh-cn/web/api/htmltableelement/index.html @@ -20,13 +20,13 @@

    属性

    {{DOMxRef("HTMLTableElement.caption")}}
    -
    这是一个 {{DOMxRef("HTMLTableCaptionElement")}} ,表示作为子元素中的第一个 {{HTMLElement("caption")}} ,如果找不到则为 null。当设置此属性时,如果给出的对象不是一个 <caption>,一个带有 HierarchyRequestError 名字的异常 {{DOMxRef("DOMException")}} 会被抛出。如果设置了正确的对象,它会被作为第一个子元素插入DOM树中,同时子元素中的第一个 <caption> 会被移除,如果存在的话。
    +
    这是一个 {{DOMxRef("HTMLTableCaptionElement")}} ,表示作为子元素中的第一个 {{HTMLElement("caption")}} ,如果找不到则为 null。当设置此属性时,如果给出的对象不是一个 <caption>,一个带有 HierarchyRequestError 名字的异常 {{DOMxRef("DOMException")}} 会被抛出。如果设置了正确的对象,它会被作为第一个子元素插入 DOM 树中,同时子元素中的第一个 <caption> 会被移除,如果存在的话。
    {{DOMxRef("HTMLTableElement.tHead")}}
    -
    这是一个 {{DOMxRef("HTMLTableSectionElement")}},表示子元素中的第一个 {{HTMLElement("thead")}},如果找不到则为 null 。当设置此属性时,如果给出的对象不是一个 <thead>, 一个带有 HierarchyRequestError 名字的异常 {{DOMxRef("DOMException")}} 会被抛出。如果设置了正确的对象,它会被立即插入到DOM树中既不是 {{HTMLElement("caption")}} 也不是 {{HTMLElement("colgroup")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话),同时子元素中的第一个 <thead> 会被移除,如果存在的话。
    +
    这是一个 {{DOMxRef("HTMLTableSectionElement")}},表示子元素中的第一个 {{HTMLElement("thead")}},如果找不到则为 null 。当设置此属性时,如果给出的对象不是一个 <thead>,一个带有 HierarchyRequestError 名字的异常 {{DOMxRef("DOMException")}} 会被抛出。如果设置了正确的对象,它会被立即插入到 DOM 树中既不是 {{HTMLElement("caption")}} 也不是 {{HTMLElement("colgroup")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话),同时子元素中的第一个 <thead> 会被移除,如果存在的话。
    {{DOMxRef("HTMLTableElement.tFoot")}}
    -
    这是一个 {{DOMxRef("HTMLTableSectionElement")}}, 表示子元素中的第一个 {{HTMLElement("tfoot")}},如果找不到则为 null。当设置此属性时,如果给出的对象不是一个 <tfoot>,一个带有 HierarchyRequestError 名字的异常 {{DOMxRef("DOMException")}} 会被抛出。如果设置了正确的对象,它会被立即插入到DOM树中既不是 {{HTMLElement("caption")}}、{{HTMLElement("colgroup")}} 也不是 {{HTMLElement("thead")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话),同时子元素中的第一个 <tfoot> 会被移除,如果存在的话。
    +
    这是一个 {{DOMxRef("HTMLTableSectionElement")}},表示子元素中的第一个 {{HTMLElement("tfoot")}},如果找不到则为 null。当设置此属性时,如果给出的对象不是一个 <tfoot>,一个带有 HierarchyRequestError 名字的异常 {{DOMxRef("DOMException")}} 会被抛出。如果设置了正确的对象,它会被立即插入到 DOM 树中既不是 {{HTMLElement("caption")}}、{{HTMLElement("colgroup")}} 也不是 {{HTMLElement("thead")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话),同时子元素中的第一个 <tfoot> 会被移除,如果存在的话。
    {{DOMxRef("HTMLTableElement.rows")}}{{ReadOnlyInline}}
    -
    返回一个实时的 {{DOMxRef("HTMLCollection")}},它包含元素中的所有行,也就是子元素中的所有 {{HTMLElement("tr")}},或者是 {{HTMLElement("thead")}}、{{HTMLElement("tbody")}} 和 {{HTMLElement("tfoot")}} 三者子元素中的其中一个子元素。<thead> 中的行会按照DOM树的顺序出现在首位,<tbody> 中的行出现在末位,也会按照DOM树的顺序。HTMLCollection 对象是实时的,当 HTMLTableElement 发生变化时会自动更新。
    +
    返回一个实时的 {{DOMxRef("HTMLCollection")}},它包含元素中的所有行,也就是子元素中的所有 {{HTMLElement("tr")}},或者是 {{HTMLElement("thead")}}、{{HTMLElement("tbody")}} 和 {{HTMLElement("tfoot")}} 三者子元素中的其中一个子元素。<thead> 中的行会按照 DOM 树的顺序出现在首位,<tbody> 中的行出现在末位,也会按照 DOM 树的顺序。HTMLCollection 对象是实时的,当 HTMLTableElement 发生变化时会自动更新。
    {{DOMxRef("HTMLTableElement.tBodies")}}{{ReadOnlyInline}}
    返回一个实时的 {{DOMxRef("HTMLCollection")}},它包含元素中所有的 {{HTMLElement("tbody")}}。HTMLCollection 对象是实时的,当 HTMLTableElement 发生变化时会自动更新。
    @@ -66,19 +66,19 @@

    方法

    {{DOMxRef("HTMLTableElement.createTHead()")}}
    -
    返回一个 {{DOMxRef("HTMLElement")}},表示子元素中的第一个 {{HTMLElement("thead")}}。如果找不到,则创建一个新的并且立即插入到DOM树中既不是 {{HTMLElement("caption")}} 也不是 {{HTMLElement("colgroup")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话)。
    +
    返回一个 {{DOMxRef("HTMLElement")}},表示子元素中的第一个 {{HTMLElement("thead")}}。如果找不到,则创建一个新的并且立即插入到 DOM 树中既不是 {{HTMLElement("caption")}} 也不是 {{HTMLElement("colgroup")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话)。
    {{DOMxRef("HTMLTableElement.deleteTHead()")}}
    移除子元素中的第一个 {{HTMLElement("thead")}}。
    {{DOMxRef("HTMLTableElement.createTFoot()")}}
    -
    返回一个 {{DOMxRef("HTMLElement")}},表示子元素中的第一个 {{HTMLElement("tfoot")}}。如果找不到,则创建一个新的并且立即插入到DOM树中既不是 {{HTMLElement("caption")}}、{{HTMLElement("colgroup")}} 也不是 {{HTMLElement("thead")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话)。
    +
    返回一个 {{DOMxRef("HTMLElement")}},表示子元素中的第一个 {{HTMLElement("tfoot")}}。如果找不到,则创建一个新的并且立即插入到 DOM 树中既不是 {{HTMLElement("caption")}}、{{HTMLElement("colgroup")}} 也不是 {{HTMLElement("thead")}} 的第一个元素之前,或者直接被作为最后一个元素插入(如果找不到上述元素的话)。
    {{DOMxRef("HTMLTableElement.deleteTFoot()")}}
    移除子元素中的第一个 {{HTMLElement("tfoot")}}。
    {{DOMxRef("HTMLTableElement.createCaption()")}}
    -
    返回一个 {{DOMxRef("HTMLElement")}},表示子元素中的第一个 {{HTMLElement("caption")}}。 如果找不到,则创建一个新的并且插入到DOM树中作为 {{HTMLElement("table")}} 的第一个子元素。
    +
    返回一个 {{DOMxRef("HTMLElement")}},表示子元素中的第一个 {{HTMLElement("caption")}}。如果找不到,则创建一个新的并且插入到 DOM 树中作为 {{HTMLElement("table")}} 的第一个子元素。
    {{DOMxRef("HTMLTableElement.deleteCaption()")}}
    移除子元素中的第一个 {{HTMLElement("caption")}}。
    {{DOMxRef("HTMLTableElement.insertRow()")}}
    -
    返回一个 {{DOMxRef("HTMLTableRowElement")}},表示表格中的一个新行。它会被立即插入到行集合中给定 index 位置所表示的 {{HTMLElement("tr")}} 元素之前。如果有必要一个 {{HTMLElement("tbody")}} 会被创建。如果 index 值为 -1, 这个新行会被追加到集合中。如果 index 值小于 -1 或者大于集合中的行总数,一个带有 IndexSizeError 值的异常 {{DOMxRef("DOMException")}} 会发生。
    +
    返回一个 {{DOMxRef("HTMLTableRowElement")}},表示表格中的一个新行。它会被立即插入到行集合中给定 index 位置所表示的 {{HTMLElement("tr")}} 元素之前。如果有必要一个 {{HTMLElement("tbody")}} 会被创建。如果 index 值为 -1,这个新行会被追加到集合中。如果 index 值小于 -1 或者大于集合中的行总数,一个带有 IndexSizeError 值的异常 {{DOMxRef("DOMException")}} 会发生。
    {{DOMxRef("HTMLTableElement.deleteRow()")}}
    移除与参数中给定 index 值相关的行。如果 index 值为 -1,最后一行会被移除;如果 index 值小于 -1 或者大于集合中的行总数,一个带有 IndexSizeError 值的异常 {{DOMxRef("DOMException")}} 会发生。
    @@ -126,5 +126,5 @@

    浏览器兼容性

    另请参阅

      -
    • 实现了这个接口的HTML元素:{{HTMLElement("table")}}。
    • +
    • 实现了这个接口的 HTML 元素:{{HTMLElement("table")}}。
    diff --git a/files/zh-cn/web/api/htmltableelement/rows/index.html b/files/zh-cn/web/api/htmltableelement/rows/index.html index af8619af5e9c2d..e192ebd9bdaafc 100644 --- a/files/zh-cn/web/api/htmltableelement/rows/index.html +++ b/files/zh-cn/web/api/htmltableelement/rows/index.html @@ -15,7 +15,7 @@ -

    HTMLTableElement.rows 只读属性返回表中所有行的一个活的 {{domxref("HTMLCollection")}}。HTMLTableElement.rows 包括与之相关的{{HTMLElement("thead")}}, {{HTMLElement("tfoot")}} 和 {{HTMLElement("tbody")}} 元素.

    +

    HTMLTableElement.rows 只读属性返回表中所有行的一个活的 {{domxref("HTMLCollection")}}。HTMLTableElement.rows 包括与之相关的{{HTMLElement("thead")}}, {{HTMLElement("tfoot")}} 和 {{HTMLElement("tbody")}} 元素。

    Although the property is read-only, the returned object is live and allows the modification of its content.

    diff --git a/files/zh-cn/web/api/htmltemplateelement/content/index.html b/files/zh-cn/web/api/htmltemplateelement/content/index.html index bdcb073b7c4e21..4e78cb00f97cb5 100644 --- a/files/zh-cn/web/api/htmltemplateelement/content/index.html +++ b/files/zh-cn/web/api/htmltemplateelement/content/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("Web Components")}}
    -

    The HTMLTemplateElement.content属性返回<template>元素的模板内容(一个 {{domxref("DocumentFragment")}}).

    +

    The HTMLTemplateElement.content属性返回<template>元素的模板内容 (一个 {{domxref("DocumentFragment")}}).

    语法

    diff --git a/files/zh-cn/web/api/htmltemplateelement/index.html b/files/zh-cn/web/api/htmltemplateelement/index.html index 4a5f41718f2c67..ae4559eafba918 100644 --- a/files/zh-cn/web/api/htmltemplateelement/index.html +++ b/files/zh-cn/web/api/htmltemplateelement/index.html @@ -15,7 +15,7 @@

    属性

    {{domxref("HTMLTemplateElement.content")}}{{readonlyinline}}
    -
    {{domxref("DocumentFragment")}}对象,包裹了模板元素{{HTMLElement("template")}}的内容。这个属性是只读的DOM树。
    +
    {{domxref("DocumentFragment")}}对象,包裹了模板元素{{HTMLElement("template")}}的内容。这个属性是只读的 DOM 树。

    Methods

    diff --git a/files/zh-cn/web/api/htmltextareaelement/index.html b/files/zh-cn/web/api/htmltextareaelement/index.html index 50395b03ade937..19e05625beb349 100644 --- a/files/zh-cn/web/api/htmltextareaelement/index.html +++ b/files/zh-cn/web/api/htmltextareaelement/index.html @@ -39,7 +39,7 @@

    属性

    - + diff --git a/files/zh-cn/web/api/htmlunknownelement/index.html b/files/zh-cn/web/api/htmlunknownelement/index.html index 780ce662c048f9..742244bddc612e 100644 --- a/files/zh-cn/web/api/htmlunknownelement/index.html +++ b/files/zh-cn/web/api/htmlunknownelement/index.html @@ -9,7 +9,7 @@
    {{ APIRef("HTML DOM") }}
    -

    HTMLUnknownElement 代表着一个无效的HTML元素,派生自 {{domxref("HTMLElement")}} 接口,,但它没有任何可用的附加属性或方法.

    +

    HTMLUnknownElement 代表着一个无效的 HTML 元素,派生自 {{domxref("HTMLElement")}} 接口,,但它没有任何可用的附加属性或方法。

    属性

    @@ -17,7 +17,7 @@

    属性

    方法

    -

    没有指定方法;继承来自父级的属性, {{domxref("HTMLElement")}}.

    +

    没有指定方法;继承来自父级的属性,{{domxref("HTMLElement")}}.

    规范

    diff --git a/files/zh-cn/web/api/htmlvideoelement/disablepictureinpicture/index.md b/files/zh-cn/web/api/htmlvideoelement/disablepictureinpicture/index.md index 1c7a7ef0244a40..6709e9da59ab6c 100644 --- a/files/zh-cn/web/api/htmlvideoelement/disablepictureinpicture/index.md +++ b/files/zh-cn/web/api/htmlvideoelement/disablepictureinpicture/index.md @@ -21,7 +21,7 @@ browser-compat: api.HTMLVideoElement.disablePictureInPicture ## 属性 -一个布尔值,如果为`true`,阻止用户代理向用户建议该功能。 +一个布尔值,如果为`true`,阻止用户代理向用户建议该功能。 ## 规范 diff --git a/files/zh-cn/web/api/htmlvideoelement/enterpictureinpicture_event/index.md b/files/zh-cn/web/api/htmlvideoelement/enterpictureinpicture_event/index.md index e160233055591e..eda62315bc955c 100644 --- a/files/zh-cn/web/api/htmlvideoelement/enterpictureinpicture_event/index.md +++ b/files/zh-cn/web/api/htmlvideoelement/enterpictureinpicture_event/index.md @@ -20,7 +20,7 @@ browser-compat: api.HTMLVideoElement.enterpictureinpicture_event ## 语法 -在 {{domxref("EventTarget.addEventListener", "addEventListener()")}}使用事件的名称, 或者设置事件处理器属性。 +在 {{domxref("EventTarget.addEventListener", "addEventListener()")}}使用事件的名称,或者设置事件处理器属性。 ```js addEventListener('enterpictureinpicture', event => { }); diff --git a/files/zh-cn/web/api/htmlvideoelement/index.html b/files/zh-cn/web/api/htmlvideoelement/index.html index f7047e3470bd02..14487404ad638d 100644 --- a/files/zh-cn/web/api/htmlvideoelement/index.html +++ b/files/zh-cn/web/api/htmlvideoelement/index.html @@ -25,18 +25,18 @@

    属性

    {{domxref("HTMLVideoElement.height")}}
    -
    表达HTML属性 {{htmlattrxref("height", "video")}}的值的一个{{domxref("DOMString")}} ,以CSS pixels的单位给出了显示区域的大小。
    +
    表达 HTML 属性 {{htmlattrxref("height", "video")}}的值的一个{{domxref("DOMString")}} ,以 CSS pixels 的单位给出了显示区域的大小。
    {{domxref("HTMLVideoElement.poster")}}
    -
    表达HTML属性 {{htmlattrxref("poster", "video")}}的值的一个{{domxref("DOMString")}} ,用于指定当视频无法播放时需要展示的图片。
    +
    表达 HTML 属性 {{htmlattrxref("poster", "video")}}的值的一个{{domxref("DOMString")}} ,用于指定当视频无法播放时需要展示的图片。
    {{domxref("HTMLVideoElement.videoHeight")}} {{readonlyInline}}
    -
    返回一个unsigned long 值,以CSS pixels的单位给出视频资源的实际高度。这个值考虑了大小、对比度、明度、分辨率等,是由视频资源本身确定的。如果这个元素的ready state是 HAVE_NOTHING,这个属性的值为0。
    +
    返回一个unsigned long 值,以 CSS pixels 的单位给出视频资源的实际高度。这个值考虑了大小、对比度、明度、分辨率等,是由视频资源本身确定的。如果这个元素的 ready state 是 HAVE_NOTHING,这个属性的值为 0。
    {{domxref("HTMLVideoElement.videoWidth")}} {{readonlyInline}}
    -
    返回一个unsigned long 值,以CSS pixels的单位给出视频资源的实际宽度。这个值考虑了大小、对比度、明度、分辨率等,是由视频资源本身确定的。如果这个元素的ready state是 HAVE_NOTHING,这个属性的值为0。
    +
    返回一个unsigned long 值,以 CSS pixels 的单位给出视频资源的实际宽度。这个值考虑了大小、对比度、明度、分辨率等,是由视频资源本身确定的。如果这个元素的 ready state 是 HAVE_NOTHING,这个属性的值为 0。
    {{domxref("HTMLVideoElement.width")}}
    -
    表达HTML属性 {{htmlattrxref("width", "video")}}的值的一个{{domxref("DOMString")}} ,以CSS pixels的单位给出了显示区域的大小。
    +
    表达 HTML 属性 {{htmlattrxref("width", "video")}}的值的一个{{domxref("DOMString")}} ,以 CSS pixels 的单位给出了显示区域的大小。
    -

    Gecko特定属性

    +

    Gecko 特定属性

    {{domxref("HTMLVideoElement.mozParsedFrames")}} {{readonlyInline}}{{non-standard_inline}}
    @@ -44,7 +44,7 @@

    Gecko特定属性

    {{domxref("HTMLVideoElement.mozDecodedFrames")}} {{readonlyInline}}{{non-standard_inline}}
    返回一个 unsigned long 值,给出已经从媒体资源中解析,并解码为图像的视频帧数。
    {{domxref("HTMLVideoElement.mozPresentedFrames")}} {{readonlyInline}}{{non-standard_inline}}
    -
    返回一个 unsigned long 值,给出被置入绘制队列(pipeline)等待绘制的视频帧数。
    +
    返回一个 unsigned long 值,给出被置入绘制队列 (pipeline) 等待绘制的视频帧数。
    {{domxref("HTMLVideoElement.mozPaintedFrames")}} {{readonlyInline}}{{non-standard_inline}}
    返回一个 unsigned long 值,给出已经被绘制的视频帧数。
    {{domxref("HTMLVideoElement.mozFrameDelay")}} {{readonlyInline}}{{non-standard_inline}}
    diff --git a/files/zh-cn/web/api/htmlvideoelement/leavepictureinpicture_event/index.md b/files/zh-cn/web/api/htmlvideoelement/leavepictureinpicture_event/index.md index baea8903cf001f..a2f282f4c65515 100644 --- a/files/zh-cn/web/api/htmlvideoelement/leavepictureinpicture_event/index.md +++ b/files/zh-cn/web/api/htmlvideoelement/leavepictureinpicture_event/index.md @@ -40,7 +40,7 @@ onleavepictureinpicture = event => { }; ## 示例 -这些示例为 `leavepictureinpicture` 事件增加事件侦听器, 然后在该事件处理程序对事件触发做出反应时发布消息。 +这些示例为 `leavepictureinpicture` 事件增加事件侦听器,然后在该事件处理程序对事件触发做出反应时发布消息。 使用 `addEventListener()`: diff --git a/files/zh-cn/web/api/htmlvideoelement/requestpictureinpicture/index.md b/files/zh-cn/web/api/htmlvideoelement/requestpictureinpicture/index.md index eb8db842e18525..ab02bbb14f6d0a 100644 --- a/files/zh-cn/web/api/htmlvideoelement/requestpictureinpicture/index.md +++ b/files/zh-cn/web/api/htmlvideoelement/requestpictureinpicture/index.md @@ -19,7 +19,7 @@ browser-compat: api.HTMLVideoElement.requestPictureInPicture **{{domxref("HTMLVideoElement")}}** 接口提供的 **`requestPictureInPicture()`** 方法会发出异步请求,并以画中画的模式显示视频。 -该方法不能保证视频进入画中画。 如果授予了进入画中画的权限, 则将返回一个 {{jsxref("Promise")}},最终完成后将收到一个 {{domxref("HTMLVideoElement.enterpictureinpicture_event", "enterpictureinpicture")}} 事件, 来表示它现在处于画中画状态。 +该方法不能保证视频进入画中画。如果授予了进入画中画的权限,则将返回一个 {{jsxref("Promise")}},最终完成后将收到一个 {{domxref("HTMLVideoElement.enterpictureinpicture_event", "enterpictureinpicture")}} 事件,来表示它现在处于画中画状态。 ## 语法 diff --git a/files/zh-cn/web/api/htmlvideoelement/videoheight/index.md b/files/zh-cn/web/api/htmlvideoelement/videoheight/index.md index c196ac0a0378b4..61062ba689d83e 100644 --- a/files/zh-cn/web/api/htmlvideoelement/videoheight/index.md +++ b/files/zh-cn/web/api/htmlvideoelement/videoheight/index.md @@ -23,31 +23,31 @@ browser-compat: api.HTMLVideoElement.videoHeight --- {{APIRef("HTML DOM")}} -{{domxref("HTMLVideoElement")}} 接口提供只读的 **`videoHeight`** 属性 ,指示视频的 [固有高度](#关于固定的宽高) ,使用CSS的像素值表示。 +{{domxref("HTMLVideoElement")}} 接口提供只读的 **`videoHeight`** 属性,指示视频的 [固有高度](#关于固定的宽高) ,使用 CSS 的像素值表示。 简单来说,这是媒体的初始高度。 ## 属性 -整数值,以CSS的像素值指定视频的固有高度。 -如果元素的 {{domxref("HTMLMediaElement.readyState", "readyState")}} 是 `HTMLMediaElement.HAVE_NOTHING`, 则此属性的值为0,因为视频和开头图片的大小并不能知道 +整数值,以 CSS 的像素值指定视频的固有高度。 +如果元素的 {{domxref("HTMLMediaElement.readyState", "readyState")}} 是 `HTMLMediaElement.HAVE_NOTHING`,则此属性的值为 0,因为视频和开头图片的大小并不能知道 ### 关于固定的宽高 -{{Glossary("user agent")}} 通过从媒体的原始像素宽度和高度开始计算元素媒体的固有宽度和高度,然后考虑以下因素: +{{Glossary("user agent")}} 通过从媒体的原始像素宽度和高度开始计算元素媒体的固有宽度和高度,然后考虑以下因素: - 媒体的宽高比。 - 媒体的镜头校正(以媒体中心点为中心的一个匹配目标长宽比的子矩形;译者注:用于校正媒体存在的暗角)。 - 目标设备的分辨率。 - 媒体格式所需要的任何其他因素。 -如果元素当前显示的是视频的开头帧而不是呈现的视频内容, 那么开头帧的固有大小将被视为元素 `

    常量

    diff --git a/files/zh-cn/web/api/idbcursorsync/index.html b/files/zh-cn/web/api/idbcursorsync/index.html index 885cf709d96355..b87d460d519de6 100644 --- a/files/zh-cn/web/api/idbcursorsync/index.html +++ b/files/zh-cn/web/api/idbcursorsync/index.html @@ -15,7 +15,7 @@

    {{APIRef("IndexedDB")}}

    -

    注意: 同步 IndexedDB API 版本 本来计划仅用于Web Workers, 事实上由于本身存在一些问题已经被移除。当然,如果 Web 开发人员有足够的需求,   IndexedDB API 的 IDBCursorSync表示用于遍历数据库中多个记录的游标。 你只能设置 一个IDBCursorSync 代表一种游标实例,但同时可以有无限数量的游标。.此操作在基础索引或对象存储上执行。它使应用程序能够同步处理光标范围内的所有记录。

    +

    注意: 同步 IndexedDB API 版本 本来计划仅用于Web Workers, 事实上由于本身存在一些问题已经被移除。当然,如果 Web 开发人员有足够的需求,   IndexedDB API 的 IDBCursorSync表示用于遍历数据库中多个记录的游标。你只能设置 一个IDBCursorSync 代表一种游标实例,但同时可以有无限数量的游标。.此操作在基础索引或对象存储上执行。它使应用程序能够同步处理光标范围内的所有记录。

    方法概述

    diff --git a/files/zh-cn/web/api/idbdatabase/versionchange_event/index.html b/files/zh-cn/web/api/idbdatabase/versionchange_event/index.html index 844f1d1a62a70c..174471ccb90291 100644 --- a/files/zh-cn/web/api/idbdatabase/versionchange_event/index.html +++ b/files/zh-cn/web/api/idbdatabase/versionchange_event/index.html @@ -88,11 +88,11 @@

    更多参考

    • 使用 IndexedDB
    • -
    • 开始了解事务: {{domxref("IDBDatabase")}}
    • -
    • 使用事务: {{domxref("IDBTransaction")}}
    • -
    • 设置键值范围: {{domxref("IDBKeyRange")}}
    • -
    • 检索与修改数据: {{domxref("IDBObjectStore")}}
    • -
    • 使用游标: {{domxref("IDBCursor")}}
    • +
    • 开始了解事务:{{domxref("IDBDatabase")}}
    • +
    • 使用事务:{{domxref("IDBTransaction")}}
    • +
    • 设置键值范围:{{domxref("IDBKeyRange")}}
    • +
    • 检索与修改数据:{{domxref("IDBObjectStore")}}
    • +
    • 使用游标:{{domxref("IDBCursor")}}
    • 参考用例:To-do Notifications (view example live.)
    • versionchange 事件
    diff --git a/files/zh-cn/web/api/idbenvironment/index.html b/files/zh-cn/web/api/idbenvironment/index.html index 73f886c47c9fd4..68c633ba6dfb4a 100644 --- a/files/zh-cn/web/api/idbenvironment/index.html +++ b/files/zh-cn/web/api/idbenvironment/index.html @@ -60,10 +60,10 @@

    参考

    • 如何使用 IndexedDB
    • -
    • 打开事务: {{domxref("IDBDatabase")}}
    • -
    • 使用事务: {{domxref("IDBTransaction")}}
    • -
    • 为键值设置范围: {{domxref("IDBKeyRange")}}
    • -
    • 获取或修改数据库的数据: {{domxref("IDBObjectStore")}}
    • -
    • 使用游标: {{domxref("IDBCursor")}}
    • +
    • 打开事务:{{domxref("IDBDatabase")}}
    • +
    • 使用事务:{{domxref("IDBTransaction")}}
    • +
    • 为键值设置范围:{{domxref("IDBKeyRange")}}
    • +
    • 获取或修改数据库的数据:{{domxref("IDBObjectStore")}}
    • +
    • 使用游标:{{domxref("IDBCursor")}}
    • 参考示例:To-do Notifications (view example live.)
    diff --git a/files/zh-cn/web/api/idbobjectstore/autoincrement/index.html b/files/zh-cn/web/api/idbobjectstore/autoincrement/index.html index b808bb229207a2..65c551c33b5e5b 100644 --- a/files/zh-cn/web/api/idbobjectstore/autoincrement/index.html +++ b/files/zh-cn/web/api/idbobjectstore/autoincrement/index.html @@ -124,8 +124,8 @@

    相关内容

  • 使用 IndexedDB
  • 开始学习事务 transactions: {{domxref("IDBDatabase")}}
  • 使用事务 transactions: {{domxref("IDBTransaction")}}
  • -
  • key 值域 range 的使用: {{domxref("IDBKeyRange")}}
  • -
  • 检索、修改: {{domxref("IDBObjectStore")}}
  • -
  • 使用游标: {{domxref("IDBCursor")}}
  • +
  • key 值域 range 的使用:{{domxref("IDBKeyRange")}}
  • +
  • 检索、修改:{{domxref("IDBObjectStore")}}
  • +
  • 使用游标:{{domxref("IDBCursor")}}
  • 相关例子:To-do Notifications (view example live.)
  • diff --git a/files/zh-cn/web/api/idbobjectstore/get/index.html b/files/zh-cn/web/api/idbobjectstore/get/index.html index 3d0e5cc9f57aa6..6d20981306a99e 100644 --- a/files/zh-cn/web/api/idbobjectstore/get/index.html +++ b/files/zh-cn/web/api/idbobjectstore/get/index.html @@ -62,7 +62,7 @@

    异常

    例子

    -

    在以下的代码段中,我们在数据库上打开一个“读/写 事务(read/write transaction)”,并使用 get() 从“对象储存( object store )”中获取一个特定的记录——一个带有“Walk dog”键的示例记录。一旦检索到这个数据对象,你就可以使用普通的 JavaScript 更新它,然后使用 {{domxref("IDBObjectStore.put")}} 操作将其放回数据库。有关完整的工作示例,查看我们的 To-do Notifications app (view example live.)

    +

    在以下的代码段中,我们在数据库上打开一个“读/写 事务(read/write transaction)”,并使用 get() 从“对象储存(object store)”中获取一个特定的记录——一个带有“Walk dog”键的示例记录。一旦检索到这个数据对象,你就可以使用普通的 JavaScript 更新它,然后使用 {{domxref("IDBObjectStore.put")}} 操作将其放回数据库。有关完整的工作示例,查看我们的 To-do Notifications app (view example live.)

    // Let us open our database
     var DBOpenRequest = window.indexedDB.open("toDoList", 4);
    diff --git a/files/zh-cn/web/api/idbobjectstore/keypath/index.html b/files/zh-cn/web/api/idbobjectstore/keypath/index.html
    index f5f0e4ea2920fa..79ad6f8cf27a52 100644
    --- a/files/zh-cn/web/api/idbobjectstore/keypath/index.html
    +++ b/files/zh-cn/web/api/idbobjectstore/keypath/index.html
    @@ -106,8 +106,8 @@ 

    相关内容

  • 使用 IndexedDB
  • 开始学习事务 transactions: {{domxref("IDBDatabase")}}
  • 使用事务 transactions: {{domxref("IDBTransaction")}}
  • -
  • 值域 range 的使用: {{domxref("IDBKeyRange")}}
  • -
  • 检索、修改: {{domxref("IDBObjectStore")}}
  • -
  • 使用游标: {{domxref("IDBCursor")}}
  • +
  • 值域 range 的使用:{{domxref("IDBKeyRange")}}
  • +
  • 检索、修改:{{domxref("IDBObjectStore")}}
  • +
  • 使用游标:{{domxref("IDBCursor")}}
  • 相关例子:To-do Notifications (view example live.)
  • diff --git a/files/zh-cn/web/api/idbtransaction/index.html b/files/zh-cn/web/api/idbtransaction/index.html index 9082bea36252f4..367bffa6f8434d 100644 --- a/files/zh-cn/web/api/idbtransaction/index.html +++ b/files/zh-cn/web/api/idbtransaction/index.html @@ -90,7 +90,7 @@

    模式常量

    {{ obsolete_header(25) }}
    -

    这些常量将不再可用——它们在 Gecko 25 中被移除。 你应该直接使用字符串常量来作为替代。 ({{ bug(888598) }})

    +

    这些常量将不再可用——它们在 Gecko 25 中被移除。你应该直接使用字符串常量来作为替代。 ({{ bug(888598) }})

    Transactions 可使用以下三种模式中的一种:

    @@ -134,7 +134,7 @@

    模式常量

    (2 in Chrome)

    diff --git a/files/zh-cn/web/api/imagebitmap/index.html b/files/zh-cn/web/api/imagebitmap/index.html index 5a1e346e6ecb1e..ad26480ffdd206 100644 --- a/files/zh-cn/web/api/imagebitmap/index.html +++ b/files/zh-cn/web/api/imagebitmap/index.html @@ -19,7 +19,7 @@

    属性

    {{domxref("ImageBitmap.height")}} {{readonlyInline}}
    无符号长整型数值,表示 ImageData 的 CSS 像素单位的高度。
    {{domxref("ImageBitmap.width")}} {{readonlyInline}}
    -
    无符号长整型数值, 表示 ImageData 的 CSS 像素单位的宽度。
    +
    无符号长整型数值,表示 ImageData 的 CSS 像素单位的宽度。

    方法

    diff --git a/files/zh-cn/web/api/imagebitmaprenderingcontext/index.html b/files/zh-cn/web/api/imagebitmaprenderingcontext/index.html index 7f80de054794b9..f95cdbdb0c988b 100644 --- a/files/zh-cn/web/api/imagebitmaprenderingcontext/index.html +++ b/files/zh-cn/web/api/imagebitmaprenderingcontext/index.html @@ -21,7 +21,7 @@

    方法

    {{domxref("ImageBitmapRenderingContext.transferFromImageBitmap()")}}
    -

    在与此渲染上下文相关的 canvas 中显示给定的 ImageBitmapImageBitmap 的所有权被转移到画布上。 这个函数以前命名为transferImageBitmap(),但在规范中修改了原名字。 为了避免影响之前的代码,旧名称作为别名被保留下来。

    +

    在与此渲染上下文相关的 canvas 中显示给定的 ImageBitmapImageBitmap 的所有权被转移到画布上。这个函数以前命名为transferImageBitmap(),但在规范中修改了原名字。为了避免影响之前的代码,旧名称作为别名被保留下来。

    diff --git a/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html b/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html index 8a15b3ec825dda..58ece02edd5168 100644 --- a/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html +++ b/files/zh-cn/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html @@ -84,11 +84,11 @@

    数据存储在哪里?

    储存限制

    -

    浏览器的最大存储空间是动态的——它取决于您的硬盘大小。 全局限制为可用磁盘空间的 50%。 在 Firefox 中,一个名为 Quota Manager 的内部浏览器工具会跟踪每个源用尽的磁盘空间,并在必要时删除数据。

    +

    浏览器的最大存储空间是动态的——它取决于您的硬盘大小。 全局限制为可用磁盘空间的 50%。在 Firefox 中,一个名为 Quota Manager 的内部浏览器工具会跟踪每个源用尽的磁盘空间,并在必要时删除数据。

    因此,如果您的硬盘驱动器是 500GB,那么浏览器的总存储容量为 250GB。如果超过此范围,则会发起称为源回收的过程,删除整个源的数据,直到存储量再次低于限制。删除源数据没有只删一部分的说法——因为这样可能会导致不一致的问题。

    -

    还有另一个限制称为组限制——这被定义为全局限制的 20%,但它至少有 10 MB,最大为 2GB。 每个源都是一组(源组)的一部分。 每个 eTLD+1 域都有一个组。 例如:

    +

    还有另一个限制称为组限制——这被定义为全局限制的 20%,但它至少有 10 MB,最大为 2GB。每个源都是一组(源组)的一部分。每个 eTLD+1 域都有一个组。例如:

    • mozilla.org——组 1,源 1
    • @@ -97,7 +97,7 @@

      储存限制

    • firefox.com ——组 2,源 4
    -

    在这个组中,mozilla.orgwww.mozilla.orgjoe.blogs.mozilla.org可以聚合使用最多 20%的全局限制。 firefox.com 单独最多使用 20%。

    +

    在这个组中,mozilla.orgwww.mozilla.orgjoe.blogs.mozilla.org可以聚合使用最多 20%的全局限制。firefox.com 单独最多使用 20%。

    达到限制后有两种不同的反应:

    @@ -115,14 +115,14 @@

    储存限制

    -

    注意:在 Chrome 中,自 M66 以来,软硬存储配额限制已发生变化。 更多信息可以在这里找到。

    +

    注意:在 Chrome 中,自 M66 以来,软硬存储配额限制已发生变化。更多信息可以在这里找到。

    LRU 策略

    当可用磁盘空间已满时,配额管理器将根据 LRU 策略开始清除数据——最近最少使用的源将首先被删除,然后是下一个,直到浏览器不再超过限制。

    -

    我们使用临时存储跟踪每个源的“上次访问时间”。 一旦达到临时存储的全局限制(之后会有更多限制),我们将尝试查找所有当前未使用的源(即没有打开选项卡/应用程序的那些来保持打开的数据存储)。 然后根据“上次访问时间”对它们进行排序。 然后删除最近最少使用的源,直到有足够的空间来满足触发此源回收的请求。

    +

    我们使用临时存储跟踪每个源的“上次访问时间”。一旦达到临时存储的全局限制(之后会有更多限制),我们将尝试查找所有当前未使用的源(即没有打开选项卡/应用程序的那些来保持打开的数据存储)。然后根据“上次访问时间”对它们进行排序。然后删除最近最少使用的源,直到有足够的空间来满足触发此源回收的请求。

    参见

    diff --git a/files/zh-cn/web/api/indexeddb_api/index.html b/files/zh-cn/web/api/indexeddb_api/index.html index 8aaeebfb3435ce..dd745631e152fe 100644 --- a/files/zh-cn/web/api/indexeddb_api/index.html +++ b/files/zh-cn/web/api/indexeddb_api/index.html @@ -21,7 +21,7 @@

    关键概念和用法

    -

    IndexedDB 是一个事务型数据库系统,类似于基于 SQL 的 RDBMS。 然而,不像 RDBMS 使用固定列表,IndexedDB 是一个基于 JavaScript 的面向对象数据库。IndexedDB 允许您存储和检索用索引的对象;可以存储结构化克隆算法支持的任何对象。您只需要指定数据库模式,打开与数据库的连接,然后检索和更新一系列事务

    +

    IndexedDB 是一个事务型数据库系统,类似于基于 SQL 的 RDBMS。然而,不像 RDBMS 使用固定列表,IndexedDB 是一个基于 JavaScript 的面向对象数据库。IndexedDB 允许您存储和检索用索引的对象;可以存储结构化克隆算法支持的任何对象。您只需要指定数据库模式,打开与数据库的连接,然后检索和更新一系列事务

    -

    注意: 正如大多数的 web 储存解决方案一样,IndexedDB 也遵守同源策略。因此当你在某个域名下操作储存数据的时候,你不能操作其他域名下的数据。

    +

    注意:正如大多数的 web 储存解决方案一样,IndexedDB 也遵守同源策略。因此当你在某个域名下操作储存数据的时候,你不能操作其他域名下的数据。

    同步和异步(Synchronous、asynchronous)

    diff --git a/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html b/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html index 9d344bab430085..8dbdf342be54b4 100644 --- a/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html +++ b/files/zh-cn/web/api/indexeddb_api/using_indexeddb/index.html @@ -39,7 +39,7 @@

    生成和构建一个对象存

    使用实验版本的 IndexedDB

    -

    如果你希望在仍旧使用前缀的浏览器中测试你的代码,可以使用下列代码:  

    +

    如果你希望在仍旧使用前缀的浏览器中测试你的代码,可以使用下列代码: 

    // In the following line, you should include the prefixes of implementations you want to test.
     window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
    @@ -64,9 +64,9 @@ 

    打开数据库

    var request = window.indexedDB.open("MyTestDatabase");
    -

    看到了吗? 打开数据库就像任何其他操作一样 — 你必须进行 "request"。

    +

    看到了吗?打开数据库就像任何其他操作一样 — 你必须进行 "request"。

    -

    open 请求不会立即打开数据库或者开始一个事务。 对 open() 函数的调用会返回一个我们可以作为事件来处理的包含 result(成功的话)或者错误值的 IDBOpenDBRequest 对象。在 IndexedDB 中的大部分异步方法做的都是同样的事情 - 返回一个包含 result 或错误的 IDBRequest 对象。open 函数的结果是一个 IDBDatabase 对象的实例。

    +

    open 请求不会立即打开数据库或者开始一个事务。对 open() 函数的调用会返回一个我们可以作为事件来处理的包含 result(成功的话)或者错误值的 IDBOpenDBRequest 对象。在 IndexedDB 中的大部分异步方法做的都是同样的事情 - 返回一个包含 result 或错误的 IDBRequest 对象。open 函数的结果是一个 IDBDatabase 对象的实例。

    该 open 方法接受第二个参数,就是数据库的版本号。数据库的版本决定了数据库架构,即数据库的对象仓库(object store)和他的结构。如果数据库不存在,open 操作会创建该数据库,然后 onupgradeneeded 事件被触发,你需要在该事件的处理函数中创建数据库模式。如果数据库已经存在,但你指定了一个更高的数据库版本,会直接触发 onupgradeneeded 事件,允许你在处理函数中更新数据库模式。我们在后面的更新数据库的版本号和 {{ domxref("IDBFactory.open") }} 中会提到更多有关这方面的内容。

    @@ -86,13 +86,13 @@

    生成处理函数

    // Do something with request.result! }; -

    onsuccess() 和 onerror() 这两个函数哪个被调用呢?如果一切顺利的话,一个 success 事件(即一个 type 属性被设置成 "success" 的 DOM 事件)会被触发,request 会作为它的 target。 一旦它被触发的话,相关 requestonsuccess() 处理函数就会被触发,使用 success 事件作为它的参数。 否则,如果不是所有事情都成功的话,一个 error 事件(即 type 属性被设置成 "error" 的 DOM 事件)会在 request 上被触发。这将会触发使用 error 事件作为参数的 onerror() 方法。

    +

    onsuccess() 和 onerror() 这两个函数哪个被调用呢?如果一切顺利的话,一个 success 事件(即一个 type 属性被设置成 "success" 的 DOM 事件)会被触发,request 会作为它的 target。一旦它被触发的话,相关 requestonsuccess() 处理函数就会被触发,使用 success 事件作为它的参数。否则,如果不是所有事情都成功的话,一个 error 事件(即 type 属性被设置成 "error" 的 DOM 事件)会在 request 上被触发。这将会触发使用 error 事件作为参数的 onerror() 方法。

    IndexedDB 的 API 被设计来尽可能地减少对错误处理的需求,所以你可能不会看到有很多的错误事件(起码,不会在你已经习惯了这些 API 之后!)。然而在打开数据库的情况下,还是有一些会产生错误事件的常见情况。最有可能出现的问题是用户决定不允许你的 web app 访问以创建一个数据库。IndexedDB 的主要设计目标之一就是允许大量数据可以被存储以供离线使用。(要了解关于针对每个浏览器你可以有多少存储空间的更多内容,请参见 存储限制)。  

    -

    显然,浏览器不希望允许某些广告网络或恶意网站来污染你的计算机,所以浏览器会在任意给定的 web app 首次尝试打开一个 IndexedDB 存储时对用户进行提醒。用户可以选择允许访问或者拒绝访问。还有,IndexedDB 在浏览器的隐私模式(Firefox 的 Private Browsing 模式和 Chrome 的 Incognito 模式)下是被完全禁止的。 隐私浏览的全部要点在于不留下任何足迹,所以在这种模式下打开数据库的尝试就失败了。

    +

    显然,浏览器不希望允许某些广告网络或恶意网站来污染你的计算机,所以浏览器会在任意给定的 web app 首次尝试打开一个 IndexedDB 存储时对用户进行提醒。用户可以选择允许访问或者拒绝访问。还有,IndexedDB 在浏览器的隐私模式(Firefox 的 Private Browsing 模式和 Chrome 的 Incognito 模式)下是被完全禁止的。隐私浏览的全部要点在于不留下任何足迹,所以在这种模式下打开数据库的尝试就失败了。

    -

    现在,假设用户已经允许了你的要创建一个数据库的请求,同时你也已经收到了一个来触发 success 回调的 success 事件;然后呢?这里的 request 是通过调用 indexedDB.open() 产生的, 所以 request.result 是一个 IDBDatabase 的实例,而且你肯定希望把它保存下来以供后面使用。你的代码看起来可能像这样:

    +

    现在,假设用户已经允许了你的要创建一个数据库的请求,同时你也已经收到了一个来触发 success 回调的 success 事件;然后呢?这里的 request 是通过调用 indexedDB.open() 产生的,所以 request.result 是一个 IDBDatabase 的实例,而且你肯定希望把它保存下来以供后面使用。你的代码看起来可能像这样:

    var db;
     var request = indexedDB.open("MyTestDatabase");
    @@ -233,9 +233,9 @@ 

    构建数据库

    正如前面提到的,onupgradeneeded 是我们唯一可以修改数据库结构的地方。在这里面,我们可以创建和删除对象存储空间以及构建和删除索引。

    -

    对象仓库仅调用 createObjectStore() 就可以创建。这个方法使用仓库的名称,和一个参数对象。即便这个参数对象是可选的,它还是非常重要的,因为它可以让你定义重要的可选属性,并完善你希望创建的对象存储空间的类型。在我们的示例中,我们创建了一个名为“customers” 的对象仓库并且定义了一个使得每个仓库中每个对象都独一无二的 keyPath 。在这个示例中的属性是 “ssn”,因为社会安全号码被确保是唯一的。被存储在该仓库中的所有对象都必须存在“ssn”。

    +

    对象仓库仅调用 createObjectStore() 就可以创建。这个方法使用仓库的名称,和一个参数对象。即便这个参数对象是可选的,它还是非常重要的,因为它可以让你定义重要的可选属性,并完善你希望创建的对象存储空间的类型。在我们的示例中,我们创建了一个名为“customers”的对象仓库并且定义了一个使得每个仓库中每个对象都独一无二的 keyPath 。在这个示例中的属性是“ssn”,因为社会安全号码被确保是唯一的。被存储在该仓库中的所有对象都必须存在“ssn”。

    -

    我们也请求了一个名为 “name” 的着眼于存储的对象的 name 属性的索引。如同 createObjectStore()createIndex() 提供了一个可选地 options 对象,该对象细化了我们希望创建的索引类型。新增一个不带 name 属性的对象也会成功,但是这个对象不会出现在 "name" 索引中。

    +

    我们也请求了一个名为“name”的着眼于存储的对象的 name 属性的索引。如同 createObjectStore()createIndex() 提供了一个可选地 options 对象,该对象细化了我们希望创建的索引类型。新增一个不带 name 属性的对象也会成功,但是这个对象不会出现在 "name" 索引中。

    我们现在可以使用存储的用户对象的 ssn 直接从对象存储空间中把它们提取出来,或者通过使用索引来使用他们的 name 进行提取。要了解这些是如何实现的,请参见 使用索引 章节。

    @@ -272,7 +272,7 @@

    增加、读取和删除数据

    你需要开启一个事务才能对你的创建的数据库进行操作。事务来自于数据库对象,而且你必须指定你想让这个事务跨越哪些对象仓库。一旦你处于一个事务中,你就可以目标对象仓库发出请求。你要决定是对数据库进行更改还是只需从中读取数据。事务提供了三种模式:readonlyreadwriteversionchange

    -

    想要修改数据库模式或结构——包括新建或删除对象仓库或索引,只能在 versionchange 事务中才能实现。该事务由一个指定了 version 的 {{domxref("IDBFactory.open")}} 方法启动。(在仍未实现最新标准的 WebKit 浏览器 ,{{domxref("IDBFactory.open")}} 方法只接受一个参数,即数据库的 name,这样你必须调用 {{domxref("IDBVersionChangeRequest.setVersion")}} 来建立 versionchange 事务。

    +

    想要修改数据库模式或结构——包括新建或删除对象仓库或索引,只能在 versionchange 事务中才能实现。该事务由一个指定了 version 的 {{domxref("IDBFactory.open")}} 方法启动。(在仍未实现最新标准的 WebKit 浏览器,{{domxref("IDBFactory.open")}} 方法只接受一个参数,即数据库的 name,这样你必须调用 {{domxref("IDBVersionChangeRequest.setVersion")}} 来建立 versionchange 事务。

    使用 readonlyreadwrite 模式都可以从已存在的对象仓库里读取记录。但只有在 readwrite 事务中才能修改对象仓库。你需要使用 {{domxref("IDBDatabase.transaction")}} 启动一个事务。该方法接受两个参数:storeNames (作用域,一个你想访问的对象仓库的数组),事务模式 mode(readonly 或 readwrite)。该方法返回一个包含 {{domxref("IDBIndex.objectStore")}} 方法的事务对象,使用 {{domxref("IDBIndex.objectStore")}} 你可以访问你的对象仓库。未指定 mode 时,默认为 readonly 模式。

    @@ -426,7 +426,7 @@

    使用游标

    cursor.continue(); } else { - alert("以获取所有客户信息: " + customers); + alert("以获取所有客户信息:" + customers); } };
    @@ -456,7 +456,7 @@

    使用索引

    alert("Donna's SSN is " + event.target.result.ssn); }; -

    “name” 游标不是唯一的,因此 name 被设成 "Donna" 的记录可能不止一条。在这种情况下,你总是得到键值最小的那个。

    +

    “name”游标不是唯一的,因此 name 被设成 "Donna" 的记录可能不止一条。在这种情况下,你总是得到键值最小的那个。

    如果你需要访问带有给定 name 的所有的记录你可以使用一个游标。你可以在索引上打开两个不同类型的游标。一个常规游标映射索引属性到对象存储空间中的对象。一个键索引映射索引属性到用来存储对象存储空间中的对象的键。不同之处被展示如下:

    @@ -527,7 +527,7 @@

    指定游标的范围和方向

    } }; -

    因为 “name” 索引不是唯一的,那就有可能存在具有相同 name 的多条记录。要注意的是这种情况不可能发生在对象存储空间上,因为键必须永远是唯一的。如果你想要在游标在索引迭代过程中过滤出重复的,你可以传递 nextunique (或 prevunique 如果你正在向后寻找)作为方向参数。 当 nextunique 或是 prevunique 被使用时,被返回的那个总是键最小的记录。

    +

    因为“name”索引不是唯一的,那就有可能存在具有相同 name 的多条记录。要注意的是这种情况不可能发生在对象存储空间上,因为键必须永远是唯一的。如果你想要在游标在索引迭代过程中过滤出重复的,你可以传递 nextunique (或 prevunique 如果你正在向后寻找)作为方向参数。当 nextunique 或是 prevunique 被使用时,被返回的那个总是键最小的记录。

    index.openKeyCursor(null, IDBCursor.nextunique).onsuccess = function(event) {
       var cursor = event.target.result;
    diff --git a/files/zh-cn/web/api/installevent/index.html b/files/zh-cn/web/api/installevent/index.html
    index a67eada43f5f07..9afcc43682bf70 100644
    --- a/files/zh-cn/web/api/installevent/index.html
    +++ b/files/zh-cn/web/api/installevent/index.html
    @@ -35,7 +35,7 @@ 

    示例

    该代码片段来自 service worker prefetch sample (请参阅 prefetch running live)。代码在{{domxref("ServiceWorkerGlobalScope.oninstall")}}中调用{{domxref("ExtendableEvent.waitUntil", "ExtendableEvent.waitUntil(any value)")}},并延迟将{{domxref("ServiceWorkerRegistration.installing")}} worker 视为已安装的,直到传递的 promise 被成功地 resolve。当所有资源已经获取并缓存,或者有任何异常发生时,promise 才会 resolve。

    -

    该代码片段也展示了服务工作线程使用的缓存版本控制的最佳实践。虽然此示例只有一个缓存,但您可以将此方法用于多个缓存。 代码将缓存的速记标识映射到特定的版本化缓存名称。

    +

    该代码片段也展示了服务工作线程使用的缓存版本控制的最佳实践。虽然此示例只有一个缓存,但您可以将此方法用于多个缓存。代码将缓存的速记标识映射到特定的版本化缓存名称。

    注意: service worker 的注册日志记录在 Chrome 浏览器中可以通过访问 chrome://serviceworker-internals 查看。

    diff --git a/files/zh-cn/web/api/intersection_observer_api/index.html b/files/zh-cn/web/api/intersection_observer_api/index.html index c5b621d37f8d63..1691af457be467 100644 --- a/files/zh-cn/web/api/intersection_observer_api/index.html +++ b/files/zh-cn/web/api/intersection_observer_api/index.html @@ -115,7 +115,7 @@

    How intersection is c

    The intersection root and root margin

    -

    在我们开始跟踪 target 元素和容器元素之前,我们要先知道什么是容器 (root) 元素。容器元素又称为 intersection root,或 root element。 这个既可以是 target 元素祖先元素也可以是指定 null 则使用浏览器视口做为容器 (root)。

    +

    在我们开始跟踪 target 元素和容器元素之前,我们要先知道什么是容器 (root) 元素。容器元素又称为 intersection root,或 root element。这个既可以是 target 元素祖先元素也可以是指定 null 则使用浏览器视口做为容器 (root)。

    root intersection rectangle 是用来对目标元素进行相交检测的矩形,它的大小有以下几种情况:

    @@ -136,7 +136,7 @@

    Thresholds

    Note that it's possible to have a non-zero intersection rectangle, which can happen if the intersection is exactly along the boundary between the two or the area of {{domxref("IntersectionObserverEntry.boundingClientRect", "boundingClientRect")}} is zero. This state of the target and root sharing a boundary line is not considered enough to be considered transitioning into an intersecting state.

    -

    为了让我们感受下 thresholds 是如何工作的,尝试滚动以下的例子,每一个 colored box 的四个边角都会展示自身在 root 元素中的可见程度百分比,所以在你滚动 root 的时候你将会看到四个边角的数值一直在发生变化。 每一个 box 都有不同的 thresholds:

    +

    为了让我们感受下 thresholds 是如何工作的,尝试滚动以下的例子,每一个 colored box 的四个边角都会展示自身在 root 元素中的可见程度百分比,所以在你滚动 root 的时候你将会看到四个边角的数值一直在发生变化。每一个 box 都有不同的 thresholds:

    • 第一个盒子的 thresholds 包含每个可视百分比,也就是说,{{domxref("IntersectionObserver.thresholds")}} 数组是 [0.00, 0.01, 0.02, ..., 0.99, 1.00]
    • diff --git a/files/zh-cn/web/api/keyboardevent/charcode/index.html b/files/zh-cn/web/api/keyboardevent/charcode/index.html index 009739b51a082b..b1c74cf11bca70 100644 --- a/files/zh-cn/web/api/keyboardevent/charcode/index.html +++ b/files/zh-cn/web/api/keyboardevent/charcode/index.html @@ -56,7 +56,7 @@

      示例

      注意

      -

      在{{ domxref("element.onkeypress", "keypress") }} 事件中,按键的 Unicode 值保存在 {{ domxref("event.keyCode", "keyCode") }} 或 {{ domxref("event.charCode", "charCode") }} 属性其中之一,不会二者同时都有。如果按下的是字符键 (例如 'a'), charCode 被设置为字符的代码值,并区分大小写。(即 charCode 会考虑 Shift 键是否被按下)。 否则,被按下的键的代码被存储在 keyCode 中。

      +

      在{{ domxref("element.onkeypress", "keypress") }} 事件中,按键的 Unicode 值保存在 {{ domxref("event.keyCode", "keyCode") }} 或 {{ domxref("event.charCode", "charCode") }} 属性其中之一,不会二者同时都有。如果按下的是字符键 (例如 'a'), charCode 被设置为字符的代码值,并区分大小写。(即 charCode 会考虑 Shift 键是否被按下)。否则,被按下的键的代码被存储在 keyCode 中。

      如果有一个或多个修饰键被按下,有一些复杂的规则来产生 charCode 的值,细节可参考  Gecko Keypress 事件 。

      diff --git a/files/zh-cn/web/api/keyboardevent/index.html b/files/zh-cn/web/api/keyboardevent/index.html index f6220dd5f87642..b06bd45c10816b 100644 --- a/files/zh-cn/web/api/keyboardevent/index.html +++ b/files/zh-cn/web/api/keyboardevent/index.html @@ -15,9 +15,9 @@ ---

      {{APIRef("DOM Events")}}

      -

      KeyboardEvent 对象描述了用户与键盘的交互。 每个事件都描述了用户与一个按键(或一个按键和修饰键的组合)的单个交互;事件类型keydownkeypresskeyup 用于识别不同的键盘活动类型。

      +

      KeyboardEvent 对象描述了用户与键盘的交互。每个事件都描述了用户与一个按键(或一个按键和修饰键的组合)的单个交互;事件类型keydownkeypresskeyup 用于识别不同的键盘活动类型。

      -
       注意:KeyboardEvent 只在低级别提示用户与一个键盘按键的交互是什么,不涉及这个交互的上下文含义。 当你需要处理文本输入的时候,使用 {{event("input")}} 事件代替。用户使用其他方式输入文本时,如使用平板电脑的手写系统或绘图板, 键盘事件可能不会触发。
      +
       注意:KeyboardEvent 只在低级别提示用户与一个键盘按键的交互是什么,不涉及这个交互的上下文含义。 当你需要处理文本输入的时候,使用 {{event("input")}} 事件代替。用户使用其他方式输入文本时,如使用平板电脑的手写系统或绘图板,键盘事件可能不会触发。

      构造函数

      diff --git a/files/zh-cn/web/api/keyboardevent/initkeyevent/index.html b/files/zh-cn/web/api/keyboardevent/initkeyevent/index.html index db5e3920775e12..264964bde422c4 100644 --- a/files/zh-cn/web/api/keyboardevent/initkeyevent/index.html +++ b/files/zh-cn/web/api/keyboardevent/initkeyevent/index.html @@ -13,10 +13,10 @@

      {{ ApiRef("DOM Events") }}{{non-standard_header}}{{deprecated_header}}

      -

      KeyboardEvent.initKeyEvent 方法用于初始化使用{{domxref("document.createEvent")}}("KeyboardEvent") 创建的事件的值。 以这种方式初始化的事件必须使用{{domxref("document.createEvent")}}("KeyboardEvent") 方法创建。 在调度之前,必须调用 initKeyEvent 来设置事件。

      +

      KeyboardEvent.initKeyEvent 方法用于初始化使用{{domxref("document.createEvent")}}("KeyboardEvent") 创建的事件的值。以这种方式初始化的事件必须使用{{domxref("document.createEvent")}}("KeyboardEvent") 方法创建。在调度之前,必须调用 initKeyEvent 来设置事件。

      不要再使用这个方法,而是使用{{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}}构造函数。
      - 该方法基于{{SpecName("DOM2 Events")}}的早期草案,并在基于 Gecko 的浏览器中实现; 其他浏览器基于{{SpecName("DOM3 Events")}}的早期草稿实现{{domxref("KeyboardEvent.initKeyboardEvent")}}。 将现代构造函数结构视为构建事件的唯一跨浏览器方式。

      + 该方法基于{{SpecName("DOM2 Events")}}的早期草案,并在基于 Gecko 的浏览器中实现; 其他浏览器基于{{SpecName("DOM3 Events")}}的早期草稿实现{{domxref("KeyboardEvent.initKeyboardEvent")}}。将现代构造函数结构视为构建事件的唯一跨浏览器方式。

      Syntax

      diff --git a/files/zh-cn/web/api/keyframeeffect/keyframeeffect/index.html b/files/zh-cn/web/api/keyframeeffect/keyframeeffect/index.html index de332df84c8978..23a7e663da980a 100644 --- a/files/zh-cn/web/api/keyframeeffect/keyframeeffect/index.html +++ b/files/zh-cn/web/api/keyframeeffect/keyframeeffect/index.html @@ -36,7 +36,7 @@

      Value

      ease-in
      An accelerated rate of change, going from slow to fast. Equivalent to cubic-bezier(0.42, 0, 1, 1).
      ease-out
      -
      变化速率变慢了,从快到慢, 等价于cubic-bezier(0, 0, 0.58, 1).
      +
      变化速率变慢了,从快到慢,等价于cubic-bezier(0, 0, 0.58, 1).
      ease-in-out
      This rate of change speeds up in the middle. Equivalent to cubic-bezier(0.42, 0, 0.58, 1).
      frames(<integer>)
      diff --git a/files/zh-cn/web/api/location/href/index.html b/files/zh-cn/web/api/location/href/index.html index 3186a50475e7ff..05443cd08acc45 100644 --- a/files/zh-cn/web/api/location/href/index.html +++ b/files/zh-cn/web/api/location/href/index.html @@ -17,7 +17,7 @@

      范例

      // 假设文档中包含标签: <a id="myAnchor" href="https://developer.mozilla.org/en-US/Location/href">
       var anchor = document.getElementById("myAnchor");
      -var result = anchor.href; // 返回: 'https://developer.mozilla.org/en-US/Location/href'
      +var result = anchor.href; // 返回:'https://developer.mozilla.org/en-US/Location/href'
       

      Specifications

      diff --git a/files/zh-cn/web/api/location/index.html b/files/zh-cn/web/api/location/index.html index 5d4342f8aaa9ea..ac82ab00de4d20 100644 --- a/files/zh-cn/web/api/location/index.html +++ b/files/zh-cn/web/api/location/index.html @@ -52,7 +52,7 @@

      方法

      {{domxref("Location.replace()")}}
      用给定的 URL 替换掉当前的资源。与 assign() 方法不同的是用 replace()替换的新页面不会被保存在会话的历史 {{domxref("History")}}中,这意味着用户将不能用后退按钮转到该页面。
      {{domxref("Location.toString()")}}
      -
      返回一个{{domxref("DOMString")}},包含整个 URL。 它和读取{{domxref("URLUtils.href")}}的效果相同。但是用它是不能够修改 Location 的值的。
      +
      返回一个{{domxref("DOMString")}},包含整个 URL。它和读取{{domxref("URLUtils.href")}}的效果相同。但是用它是不能够修改 Location 的值的。

      例子

      diff --git a/files/zh-cn/web/api/location/replace/index.html b/files/zh-cn/web/api/location/replace/index.html index c58c62581d8213..78592bb780eaf5 100644 --- a/files/zh-cn/web/api/location/replace/index.html +++ b/files/zh-cn/web/api/location/replace/index.html @@ -12,7 +12,7 @@ ---

      {{ APIRef("Location") }}

      -

      Location.replace() 方法以给定的 URL 来替换当前的资源。 与{{domxref("Location.assign","assign()")}} 方法 不同的是,调用 replace() 方法后,当前页面不会保存到会话历史中(session {{domxref("History")}}),这样,用户点击回退按钮时,将不会再跳转到该页面。

      +

      Location.replace() 方法以给定的 URL 来替换当前的资源。与{{domxref("Location.assign","assign()")}} 方法 不同的是,调用 replace() 方法后,当前页面不会保存到会话历史中(session {{domxref("History")}}),这样,用户点击回退按钮时,将不会再跳转到该页面。

      因违反安全规则导致的赋值失败,浏览器将会抛出类型为 SECURITY_ERROR 的 {{domxref("DOMException")}} 异常。当调用该方法的脚本所属的源与拥有 {{domxref("Location")}} 对象所属源不同时,通常情况会发生这种异常,此时通常该脚本是存在不同的域下。

      @@ -67,5 +67,5 @@

      参见

      • {{domxref("Location")}} 对象。
      • -
      • 类似方法: {{domxref("Location.assign()")}} 和 {{domxref("Location.reload()")}}。
      • +
      • 类似方法:{{domxref("Location.assign()")}} 和 {{domxref("Location.reload()")}}。
      diff --git a/files/zh-cn/web/api/media_source_extensions_api/index.html b/files/zh-cn/web/api/media_source_extensions_api/index.html index f2dd92dd6d4f53..8a1905b329a0a6 100644 --- a/files/zh-cn/web/api/media_source_extensions_api/index.html +++ b/files/zh-cn/web/api/media_source_extensions_api/index.html @@ -13,7 +13,7 @@

      概念和用法

      MSE 标准

      -

      媒体源扩展(MSE)实现后,情况就不一样了。MSE 使我们可以把通常的单个媒体文件的 src 值替换成引用 MediaSource 对象(一个包含即将播放的媒体文件的准备状态等信息的容器),以及引用多个 SourceBuffer 对象(代表多个组成整个串流的不同媒体块)的元素。MSE 让我们能够根据内容获取的大小和频率,或是内存占用详情(例如什么时候缓存被回收),进行更加精准地控制。 它是基于它可扩展的 API 建立自适应比特率流客户端(例如 DASH 或 HLS 的客户端)的基础。

      +

      媒体源扩展(MSE)实现后,情况就不一样了。MSE 使我们可以把通常的单个媒体文件的 src 值替换成引用 MediaSource 对象(一个包含即将播放的媒体文件的准备状态等信息的容器),以及引用多个 SourceBuffer 对象(代表多个组成整个串流的不同媒体块)的元素。MSE 让我们能够根据内容获取的大小和频率,或是内存占用详情(例如什么时候缓存被回收),进行更加精准地控制。它是基于它可扩展的 API 建立自适应比特率流客户端(例如 DASH 或 HLS 的客户端)的基础。

      在现代浏览器中创造能兼容 MSE 的媒体(assets)非常费时费力,还要消耗大量计算机资源和能源。此外,还须使用外部实用程序将内容转换成合适的格式。虽然浏览器支持兼容 MSE 的各种媒体容器,但采用 H.264 视频编码、AAC 音频编码和 MP4 容器的格式是非常常见的,且一定兼容。MSE 同时还提供了一个 API,用于运行时检测容器和编解码是否受支持。

      @@ -21,9 +21,9 @@

      MSE 标准

      DASH

      -

      DASH(Dynamic Adaptive Streaming over HTTP )是一个规范了自适应内容应当如何被获取的协议。它实际上是建立在 MSE 顶部的一个层,用来构建自适应比特率串流客户端。虽然已经有一个类似的协议了(例如 HTTP 串流直播(HLS)),但 DASH 有最好的跨平台兼容性,这就是我们在这里介绍它的原因。

      +

      DASH(Dynamic Adaptive Streaming over HTTP)是一个规范了自适应内容应当如何被获取的协议。它实际上是建立在 MSE 顶部的一个层,用来构建自适应比特率串流客户端。虽然已经有一个类似的协议了(例如 HTTP 串流直播(HLS)),但 DASH 有最好的跨平台兼容性,这就是我们在这里介绍它的原因。

      -

      DASH 将大量逻辑从网络协议中移出到客户端应用程序逻辑中,使用更简单的 HTTP 协议获取文件。 这样就可以用一个简单的静态文件服务器来支持 DASH,这对 CDN 也很友好。这与之前的流传输解决方案形成鲜明对比,那些流解决方案需要昂贵的许可证来获得非标准的客户端/服务器协议才能实现。

      +

      DASH 将大量逻辑从网络协议中移出到客户端应用程序逻辑中,使用更简单的 HTTP 协议获取文件。这样就可以用一个简单的静态文件服务器来支持 DASH,这对 CDN 也很友好。这与之前的流传输解决方案形成鲜明对比,那些流解决方案需要昂贵的许可证来获得非标准的客户端/服务器协议才能实现。

      DASH 的两个最常见的用例涉及“点播”或“直播”观看内容。点播功能让开发者有时间把媒体文件转码出多种不同的分辨率质量。

      diff --git a/files/zh-cn/web/api/mediacapabilities/encodinginfo/index.html b/files/zh-cn/web/api/mediacapabilities/encodinginfo/index.html index 36dfe772d668a2..51fd77d9165578 100644 --- a/files/zh-cn/web/api/mediacapabilities/encodinginfo/index.html +++ b/files/zh-cn/web/api/mediacapabilities/encodinginfo/index.html @@ -14,7 +14,7 @@

      属性

      • supported: 给出 {{domxref("MediaConfiguration")}} 中定义的属性,确定指定的媒体内容能否完全被 编码 (如果 {{domxref("MediaEncodingConfiguration")}} 已设置) 或 解码 (如果 {{domxref("MediaDecodingConfiguration")}} 已设置) 。 如果是,supported 为 true. 否则为 false.
      • -
      • smooth: 给出 {{domxref("MediaConfiguration")}} 中定义的属性, 确定指定的媒体内容在回放时能否高质量和流畅。 如果 supported 为 true, 并且回放时将流畅,smooth 为 true, 否则为 false.
      • +
      • smooth: 给出 {{domxref("MediaConfiguration")}} 中定义的属性,确定指定的媒体内容在回放时能否高质量和流畅。 如果 supported 为 true, 并且回放时将流畅,smooth 为 true, 否则为 false.
      • powerEfficient: 给出 {{domxref("MediaConfiguration")}} 中定义的属性,确定指定的媒体内容在回放时能否高能效。如果 supported 为 true, 并且回放时将高能效,powerEfficient 为 true, 否则为 false.
      diff --git a/files/zh-cn/web/api/mediadevices/devicechange_event/index.html b/files/zh-cn/web/api/mediadevices/devicechange_event/index.html index 0853b6b43fd4b1..b90e03d6344c54 100644 --- a/files/zh-cn/web/api/mediadevices/devicechange_event/index.html +++ b/files/zh-cn/web/api/mediadevices/devicechange_event/index.html @@ -3,7 +3,7 @@ slug: Web/API/MediaDevices/devicechange_event translation_of: Web/API/MediaDevices/devicechange_event --- -

      每当媒体设备(例如相机,麦克风或扬声器)连接到系统或从系统中移除时,devicechange 事件就会被发送到 {{domxref("MediaDevices")}}  实例。 这是一个没有附加属性的通用 {{domxref("Event")}} 。

      +

      每当媒体设备(例如相机,麦克风或扬声器)连接到系统或从系统中移除时,devicechange 事件就会被发送到 {{domxref("MediaDevices")}}  实例。这是一个没有附加属性的通用 {{domxref("Event")}} 。

      一般信息

      diff --git a/files/zh-cn/web/api/mediadevices/enumeratedevices/index.html b/files/zh-cn/web/api/mediadevices/enumeratedevices/index.html index 02a65eb991f5b4..207c14b7ffb6cf 100644 --- a/files/zh-cn/web/api/mediadevices/enumeratedevices/index.html +++ b/files/zh-cn/web/api/mediadevices/enumeratedevices/index.html @@ -9,7 +9,7 @@ ---
      {{APIRef("WebRTC")}}
      -

      {{domxref("MediaDevices")}} 的方法 enumerateDevices() 请求一个可用的媒体输入和输出设备的列表,例如麦克风,摄像机,耳机设备等。 返回的 {{domxref("Promise")}} 完成时,会带有一个描述设备的 {{domxref("MediaDeviceInfo")}} 的数组。

      +

      {{domxref("MediaDevices")}} 的方法 enumerateDevices() 请求一个可用的媒体输入和输出设备的列表,例如麦克风,摄像机,耳机设备等。返回的 {{domxref("Promise")}} 完成时,会带有一个描述设备的 {{domxref("MediaDeviceInfo")}} 的数组。

      语法

      diff --git a/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html b/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html index 7303c056eaaab8..6421bfc52ed6d8 100644 --- a/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html +++ b/files/zh-cn/web/api/mediadevices/getdisplaymedia/index.html @@ -33,7 +33,7 @@

      参数

      constraints {{optional_inline}}
      -
      一个可选的{{domxref("MediaStreamConstraints")}}对象,它指定了返回的{{domxref("MediaStream")}}的要求。 因为getDisplayMedia()需要视频轨道,所以即使constraints 对象没有明确请求视频轨道,返回的流也会有一个。
      +
      一个可选的{{domxref("MediaStreamConstraints")}}对象,它指定了返回的{{domxref("MediaStream")}}的要求。因为getDisplayMedia()需要视频轨道,所以即使constraints 对象没有明确请求视频轨道,返回的流也会有一个。

      返回值

      @@ -62,12 +62,12 @@

      异常

      OverconstrainedError [转换错误]
      创建流后,由于无法生成兼容的流导致应用指定的 constraints 失效。
      TypeError [类型错误]
      -
      指定的 constraints 包括调用 getDisplayMedia() 时不允许的constraints。 这些不受支持的constraintsadvanced 的,任何约束又有一个名为 minexact 的成员。
      +
      指定的 constraints 包括调用 getDisplayMedia() 时不允许的constraints。这些不受支持的constraintsadvanced 的,任何约束又有一个名为 minexact 的成员。

      示例

      -

      在下面的示例中,我们创建了一个 startCapture() 方法,该方法在给定由 displayMediaOptions 参数指定的一组选项的情况下启动屏幕捕获。 选项以 {{domxref("MediaStreamConstraints")}}对象的形式指定,该对象指定首选流配置和从中捕获视频的显示表面

      +

      在下面的示例中,我们创建了一个 startCapture() 方法,该方法在给定由 displayMediaOptions 参数指定的一组选项的情况下启动屏幕捕获。选项以 {{domxref("MediaStreamConstraints")}}对象的形式指定,该对象指定首选流配置和从中捕获视频的显示表面

      async function startCapture(displayMediaOptions) {
         let captureStream = null;
      @@ -80,7 +80,7 @@ 

      示例

      return captureStream; }
      -

      这里使用 {{jsxref("await")}} 来进行异步等待 getDisplayMedia()来进行 {{domxref("MediaStream")}}解析,其中包含指定选项所请求的显示内容。 之后,流被返回给调用者以供其使用,可能是使用 {{domxref("RTCPeerConnection.addTrack()")}}添加到 WebRTC 调用来从流中添加视频轨道。

      +

      这里使用 {{jsxref("await")}} 来进行异步等待 getDisplayMedia()来进行 {{domxref("MediaStream")}}解析,其中包含指定选项所请求的显示内容。之后,流被返回给调用者以供其使用,可能是使用 {{domxref("RTCPeerConnection.addTrack()")}}添加到 WebRTC 调用来从流中添加视频轨道。

      规范

      diff --git a/files/zh-cn/web/api/mediadevices/getusermedia/index.html b/files/zh-cn/web/api/mediadevices/getusermedia/index.html index 434f2f2865bb06..1eb7f9c9f989ae 100644 --- a/files/zh-cn/web/api/mediadevices/getusermedia/index.html +++ b/files/zh-cn/web/api/mediadevices/getusermedia/index.html @@ -149,7 +149,7 @@

      宽度和高度

      在旧的浏览器中使用新的 API

      -

      这是一个使用 navigator.mediaDevices.getUserMedia()的例子,带一个 polyfill 以适应旧的浏览器。 要注意的是这个 polyfill 并不能修正一些约束语法上的遗留差异,这表示约束在某些浏览器上可能不会很好地运行。推荐使用处理了约束的 adapter.js polyfill 来替代。

      +

      这是一个使用 navigator.mediaDevices.getUserMedia()的例子,带一个 polyfill 以适应旧的浏览器。要注意的是这个 polyfill 并不能修正一些约束语法上的遗留差异,这表示约束在某些浏览器上可能不会很好地运行。推荐使用处理了约束的 adapter.js polyfill 来替代。

      // 老的浏览器可能根本没有实现 mediaDevices,所以我们可以先设置一个空的对象
       if (navigator.mediaDevices === undefined) {
      diff --git a/files/zh-cn/web/api/mediaquerylist/addlistener/index.html b/files/zh-cn/web/api/mediaquerylist/addlistener/index.html
      index a7a4ce5446cc35..a975db9f64c1fe 100644
      --- a/files/zh-cn/web/api/mediaquerylist/addlistener/index.html
      +++ b/files/zh-cn/web/api/mediaquerylist/addlistener/index.html
      @@ -7,7 +7,7 @@
       
       

      {{DOMxRef("MediaQueryList")}}接口的addListener()方法向MediaQueryListener添加一个侦听器,该侦听器将运行自定义回调函数以响应媒体查询状态的更改。

      -

      从本质上讲,这是{{DOMxRef("EventTarget.addEventListener()")}}的别名,用于向后兼容。 较旧的浏览器应使用addListener而不是addEventListener,因为 MediaQueryList 仅从较新的浏览器中的 EventTarget 继承。

      +

      从本质上讲,这是{{DOMxRef("EventTarget.addEventListener()")}}的别名,用于向后兼容。较旧的浏览器应使用addListener而不是addEventListener,因为 MediaQueryList 仅从较新的浏览器中的 EventTarget 继承。

      语法

      @@ -17,7 +17,7 @@

      参数

      func
      -
      表示您要在媒体查询状态更改时运行的回调函数的函数或函数引用。 在原始实现中,回调是一个非标准的{{DOMxRef("MediaQueryListListener")}}对象。 在新的实现中,使用标准事件机制,回调是标准函数,事件对象是{{DOMxRef("MediaQueryListEvent")}},它继承自{{DOMxRef("Event")}}。
      +
      表示您要在媒体查询状态更改时运行的回调函数的函数或函数引用。在原始实现中,回调是一个非标准的{{DOMxRef("MediaQueryListListener")}}对象。在新的实现中,使用标准事件机制,回调是标准函数,事件对象是{{DOMxRef("MediaQueryListEvent")}},它继承自{{DOMxRef("Event")}}。

      返回值

      diff --git a/files/zh-cn/web/api/mediaquerylist/index.html b/files/zh-cn/web/api/mediaquerylist/index.html index 28a4d0af5a2788..38c7bd61087687 100644 --- a/files/zh-cn/web/api/mediaquerylist/index.html +++ b/files/zh-cn/web/api/mediaquerylist/index.html @@ -83,7 +83,7 @@

      浏览器通用性详述

      请参阅

      diff --git a/files/zh-cn/web/api/mediarecorder/audiobitspersecond/index.html b/files/zh-cn/web/api/mediarecorder/audiobitspersecond/index.html index 8ba97bdbb4de3e..3e1fdb0b3b3308 100644 --- a/files/zh-cn/web/api/mediarecorder/audiobitspersecond/index.html +++ b/files/zh-cn/web/api/mediarecorder/audiobitspersecond/index.html @@ -5,7 +5,7 @@ ---

      {{SeeCompatTable}}{{APIRef("MediaStream Recording")}}

      -

      audioBitsPerSecond  {{domxref("MediaRecorder")}} 接口的只读属性。它返回录制器所使用的音频编码码率. 或许与构造函数中指定的比特率有些不同(如果调用构造函数的时候有指定)。

      +

      audioBitsPerSecond  {{domxref("MediaRecorder")}} 接口的只读属性。它返回录制器所使用的音频编码码率。或许与构造函数中指定的比特率有些不同(如果调用构造函数的时候有指定)。

      语法

      diff --git a/files/zh-cn/web/api/mediarecorder/dataavailable_event/index.html b/files/zh-cn/web/api/mediarecorder/dataavailable_event/index.html index b9e5f855f2195a..38a3e305813323 100644 --- a/files/zh-cn/web/api/mediarecorder/dataavailable_event/index.html +++ b/files/zh-cn/web/api/mediarecorder/dataavailable_event/index.html @@ -14,7 +14,7 @@
    • 媒体流结束时,所有尚未传递到ondataavailable处理程序的媒体数据都将在单个{{domxref("Blob")}}中传递。
    • 当调用{{domxref("MediaRecorder.stop()")}}时,自记录开始或dataavailable事件最后一次发生以来已捕获的所有媒体数据都将传递到{{domxref("Blob")}}}中;此后,捕获结束。
    • 调用{{domxref("MediaRecorder.requestData()")}} dataavailable时,将传递自记录开始或事件最后一次发生以来捕获的所有媒体数据;然后Blob创建一个新文件,并将媒体捕获继续到该 blob 中。
    • -
    • 如果将timeslice属性传递到开始媒体捕获的{{domxref("MediaRecorder.start()")}}方法中,dataavailable则每timeslice毫秒触发一次事件。这意味着每个 Blob 都有特定的持续时间(最后一个 Blob 除外,后者可能更短,因为它将是自上次事件以来剩下的所有东西)。因此,如果该方法调用看起来像这样- recorder.start(1000);-的dataavailable事件将媒体捕捉的每一秒发生火灾后,我们的事件处理程序将被称为与媒体数据的 BLOB 每秒即坚持一个第二长。您可以timeslice与{{domxref("MediaRecorder.stop()")}}}和{{domxref("MediaRecorder.requestData()")}}}一起使用,以产生多个相同长度的 Blob,以及其他较短的 Blob。
    • +
    • 如果将timeslice属性传递到开始媒体捕获的{{domxref("MediaRecorder.start()")}}方法中,dataavailable则每timeslice毫秒触发一次事件。这意味着每个 Blob 都有特定的持续时间(最后一个 Blob 除外,后者可能更短,因为它将是自上次事件以来剩下的所有东西)。因此,如果该方法调用看起来像这样 - recorder.start(1000);-的dataavailable事件将媒体捕捉的每一秒发生火灾后,我们的事件处理程序将被称为与媒体数据的 BLOB 每秒即坚持一个第二长。您可以timeslice与{{domxref("MediaRecorder.stop()")}}}和{{domxref("MediaRecorder.requestData()")}}}一起使用,以产生多个相同长度的 Blob,以及其他较短的 Blob。
    diff --git a/files/zh-cn/web/api/mediarecorder/index.html b/files/zh-cn/web/api/mediarecorder/index.html index e756856f142180..66606af673bc99 100644 --- a/files/zh-cn/web/api/mediarecorder/index.html +++ b/files/zh-cn/web/api/mediarecorder/index.html @@ -44,7 +44,7 @@

    方法

    {{domxref("MediaRecorder.pause()")}}
    暂停媒体录制
    {{domxref("MediaRecorder.requestData()")}}
    -
    请求一个从开始到当前接收到的,存储为{{domxref("Blob")}}类型的录制内容. (或者是返回从上一次调用requestData() 方法之后到现在的内容).  调用这个方法后,录制将会继续进行,但是会创建一个新的Blob对象
    +
    请求一个从开始到当前接收到的,存储为{{domxref("Blob")}}类型的录制内容。(或者是返回从上一次调用requestData() 方法之后到现在的内容).  调用这个方法后,录制将会继续进行,但是会创建一个新的Blob对象
    {{domxref("MediaRecorder.resume()")}}
    继续录制之前被暂停的录制动作。
    {{domxref("MediaRecorder.start()")}}
    diff --git a/files/zh-cn/web/api/mediarecorder/mediarecorder/index.html b/files/zh-cn/web/api/mediarecorder/mediarecorder/index.html index f065f090f5840f..9361a05ad49b5d 100644 --- a/files/zh-cn/web/api/mediarecorder/mediarecorder/index.html +++ b/files/zh-cn/web/api/mediarecorder/mediarecorder/index.html @@ -26,7 +26,7 @@

    参数

  • mimeType: 为新构建的 MediaRecorder 指定录制容器的 MIME 类型。在应用中通过调用 {{domxref("MediaRecorder.isTypeSupported()")}} 来检查浏览器是否支持此种mimeType .
  • audioBitsPerSecond: 指定音频的比特率。
  • videoBitsPerSecond: 指定视频的比特率。
  • -
  • bitsPerSecond: 指定音频和视频的比特率。此属性可以用来指定上面两个属性. 如果上面两个属性只有其中之一和此属性被指定,则此属性可以用于设定另外一个属性。
  • +
  • bitsPerSecond: 指定音频和视频的比特率。此属性可以用来指定上面两个属性。如果上面两个属性只有其中之一和此属性被指定,则此属性可以用于设定另外一个属性。
  • diff --git a/files/zh-cn/web/api/mediasource/addsourcebuffer/index.html b/files/zh-cn/web/api/mediasource/addsourcebuffer/index.html index cb2fea0247640f..1ebdba810247c4 100644 --- a/files/zh-cn/web/api/mediasource/addsourcebuffer/index.html +++ b/files/zh-cn/web/api/mediasource/addsourcebuffer/index.html @@ -22,7 +22,7 @@

    返回

    一个 {{domxref("SourceBuffer")}} 对象。

    -

    错误( Errors )

    +

    错误(Errors)

    下面的错误可能会在调用该方法时被抛出。

    diff --git a/files/zh-cn/web/api/mediastream/active/index.html b/files/zh-cn/web/api/mediastream/active/index.html index 904001fd9cdbf0..51996cda6d0008 100644 --- a/files/zh-cn/web/api/mediastream/active/index.html +++ b/files/zh-cn/web/api/mediastream/active/index.html @@ -11,7 +11,7 @@ ---

    {{APIRef("Media Capture and Streams")}}

    -

    active 是 {{domxref("MediaStream")}} 接口的只读属性,返回布尔值,如果媒体流当前为活动状态时,返回 true ,否则返回 false。 至少有一条 {{domxref("MediaStreamTrack")}} 的媒体流不是{{domxref("MediaStreamTrack.ended")}} 状态时才认为是 活动的 。当所有轨道关闭时,媒体流的属性置为 false。

    +

    active 是 {{domxref("MediaStream")}} 接口的只读属性,返回布尔值,如果媒体流当前为活动状态时,返回 true ,否则返回 false。至少有一条 {{domxref("MediaStreamTrack")}} 的媒体流不是{{domxref("MediaStreamTrack.ended")}} 状态时才认为是 活动的 。当所有轨道关闭时,媒体流的属性置为 false。

    语法

    diff --git a/files/zh-cn/web/api/mediastream/gettracks/index.html b/files/zh-cn/web/api/mediastream/gettracks/index.html index c9621f92832df7..cb0e1f2cac6ac2 100644 --- a/files/zh-cn/web/api/mediastream/gettracks/index.html +++ b/files/zh-cn/web/api/mediastream/gettracks/index.html @@ -11,7 +11,7 @@ ---

    {{APIRef("Media Capture and Streams")}}{{SeeCompatTable}}

    -

    {{domxref("MediaStream")}} 接口的getTracks() 方法会返回一个包含  track set 流中所有 {{domxref("MediaStreamTrack")}}  对象的序列, 序列内容与{{domxref("MediaStreamTrack.kind")}} 无关。

    +

    {{domxref("MediaStream")}} 接口的getTracks() 方法会返回一个包含  track set 流中所有 {{domxref("MediaStreamTrack")}}  对象的序列,序列内容与{{domxref("MediaStreamTrack.kind")}} 无关。

    语法

    diff --git a/files/zh-cn/web/api/mediastream/index.html b/files/zh-cn/web/api/mediastream/index.html index 4d56d00fcfadc2..787056e4498bca 100644 --- a/files/zh-cn/web/api/mediastream/index.html +++ b/files/zh-cn/web/api/mediastream/index.html @@ -70,7 +70,7 @@

    方法

    {{domxref("MediaStream.removeTrack()")}}
    -
    移除作为参数传入的 {{domxref("MediaStreamTrack")}}。 如果这个轨道不在MediaStream 对象中什么也不会发生; 如果目标轨道为“完成”状态,一个 INVALID_STATE_RAISE 异常会产生。
    +
    移除作为参数传入的 {{domxref("MediaStreamTrack")}}。如果这个轨道不在MediaStream 对象中什么也不会发生; 如果目标轨道为“完成”状态,一个 INVALID_STATE_RAISE 异常会产生。

    说明

    diff --git a/files/zh-cn/web/api/mediastream_recording_api/using_the_mediastream_recording_api/index.html b/files/zh-cn/web/api/mediastream_recording_api/using_the_mediastream_recording_api/index.html index 573263f8015228..77430d4d97a538 100644 --- a/files/zh-cn/web/api/mediastream_recording_api/using_the_mediastream_recording_api/index.html +++ b/files/zh-cn/web/api/mediastream_recording_api/using_the_mediastream_recording_api/index.html @@ -7,7 +7,7 @@

    媒体流 (音/视频) 录制 API让记录音频流或视频流信息更加容易。当使用navigator.mediaDevices.getUserMedia()"时,它提供了一种简单的方式从用户的输入设备中记录信息,并且可以马上在 web apps 中查看记录的信息。音/视频信息都可以被录制,可以分开也可以一块儿。本文针对于提供一个基础引导去让大家了解提供了这个 API 的 MediaRecorder 的界面。

    -

    示例应用: Web 录音机

    +

    示例应用:Web 录音机

    An image of the Web dictaphone sample app - a sine wave sound visualization, then record and stop buttons, then an audio jukebox of recorded tracks that can be played back.

    diff --git a/files/zh-cn/web/api/mediastreamevent/index.html b/files/zh-cn/web/api/mediastreamevent/index.html index 9c2fefe7b5dbdd..15ed3b264513d0 100644 --- a/files/zh-cn/web/api/mediastreamevent/index.html +++ b/files/zh-cn/web/api/mediastreamevent/index.html @@ -5,7 +5,7 @@ ---

    {{APIRef("WebRTC")}}{{SeeCompatTable}}

    -

     MediaStreamEvent 接口表示发生在 {{domxref("MediaStream")}}中的事件。这种类型返回两个事件: {{event("addstream")}} 和 {{event("removestream")}}.

    +

     MediaStreamEvent 接口表示发生在 {{domxref("MediaStream")}}中的事件。这种类型返回两个事件:{{event("addstream")}} 和 {{event("removestream")}}.

    Properties

    diff --git a/files/zh-cn/web/api/mediastreamtrack/readystate/index.html b/files/zh-cn/web/api/mediastreamtrack/readystate/index.html index 9d7437e077415d..4a55e5190aa59c 100644 --- a/files/zh-cn/web/api/mediastreamtrack/readystate/index.html +++ b/files/zh-cn/web/api/mediastreamtrack/readystate/index.html @@ -23,7 +23,7 @@

    它采用以下值之一:

      -
    • "live"表示输入已连接,并尽最大努力提供实时数据。 在这种情况下,可以使用{{domxref("MediaStreamTrack.enabled")}}属性打开或关闭数据输出。
    • +
    • "live"表示输入已连接,并尽最大努力提供实时数据。在这种情况下,可以使用{{domxref("MediaStreamTrack.enabled")}}属性打开或关闭数据输出。
    • "ended"表示输入不再提供任何数据,也永远不会提供新数据。
    diff --git a/files/zh-cn/web/api/mediastreamtrack/stop/index.html b/files/zh-cn/web/api/mediastreamtrack/stop/index.html index ef6756e84f5225..6978ebadb4ad97 100644 --- a/files/zh-cn/web/api/mediastreamtrack/stop/index.html +++ b/files/zh-cn/web/api/mediastreamtrack/stop/index.html @@ -25,7 +25,7 @@

    语法

    说明

    -

    调用stop()告诉{{glossary("user agent")}} ,{{domxref("MediaStreamTrack")}}不再需要轨道的来源,无论该来源是什么,包括文件,网络流,本地摄像机或麦克风。由于多个音轨可能使用同一音源(例如,如果两个选项卡使用设备的麦克风),则音源本身并不一定会立即停止。 而是从轨道取消关联,并且停止跟踪对象。 一旦没有媒体轨道正在使用源,则实际上可能会完全停止该源。

    +

    调用stop()告诉{{glossary("user agent")}} ,{{domxref("MediaStreamTrack")}}不再需要轨道的来源,无论该来源是什么,包括文件,网络流,本地摄像机或麦克风。由于多个音轨可能使用同一音源(例如,如果两个选项卡使用设备的麦克风),则音源本身并不一定会立即停止。而是从轨道取消关联,并且停止跟踪对象。一旦没有媒体轨道正在使用源,则实际上可能会完全停止该源。

    调用stop()之后,{{domxref("MediaStreamTrack.readyState", "readyState")}}属性立即设置为ended

    @@ -46,7 +46,7 @@

    停止视频流

    videoElem.srcObject = null; }
    -

    这是通过从其{{domxref("HTMLMediaElement.srcObject", "srcObject")}} 属性获得视频元素的流来实现的。 然后,通过调用其{{domxref("MediaStream.getTracks", "getTracks()")}}方法来获取流的轨道列表。 从那里开始,剩下要做的就是使用{{jsxref("Array.forEach", "forEach()")}}遍历轨道列表并调用每个轨道的stop()方法。

    +

    这是通过从其{{domxref("HTMLMediaElement.srcObject", "srcObject")}} 属性获得视频元素的流来实现的。然后,通过调用其{{domxref("MediaStream.getTracks", "getTracks()")}}方法来获取流的轨道列表。从那里开始,剩下要做的就是使用{{jsxref("Array.forEach", "forEach()")}}遍历轨道列表并调用每个轨道的stop()方法。

    最后,将srcObject设置为null以切断与{{domxref("MediaStream")}} 对象的链接,以便将其释放。

    diff --git a/files/zh-cn/web/api/messageevent/index.html b/files/zh-cn/web/api/messageevent/index.html index 4e7b6ace417037..18e26996488583 100644 --- a/files/zh-cn/web/api/messageevent/index.html +++ b/files/zh-cn/web/api/messageevent/index.html @@ -51,7 +51,7 @@

    属性

    {{domxref("MessageEvent.source")}}
    MessageEventSource (可以是 {{domxref("WindowProxy")}}, {{domxref("MessagePort")}}, 或 {{domxref("ServiceWorker")}} 对象) 代表消息发送者。
    {{domxref("MessageEvent.ports")}}
    -
    {{domxref("MessagePort")}}对象数组,表示消息正通过特定通道(数据通道)发送的相关端口(适用于通道消息传输或者向一个共享线程(shared work )发送消息时)。
    +
    {{domxref("MessagePort")}}对象数组,表示消息正通过特定通道(数据通道)发送的相关端口(适用于通道消息传输或者向一个共享线程(shared work)发送消息时)。

    方法

    diff --git a/files/zh-cn/web/api/mouseevent/clientx/index.html b/files/zh-cn/web/api/mouseevent/clientx/index.html index 2679a7d0756043..8237522cca0067 100644 --- a/files/zh-cn/web/api/mouseevent/clientx/index.html +++ b/files/zh-cn/web/api/mouseevent/clientx/index.html @@ -9,7 +9,7 @@ ---

    {{APIRef("DOM Events")}}

    -

    MouseEvent.clientX 是只读属性, 它提供事件发生时的应用客户端区域的水平坐标 (与页面坐标不同)。例如,不论页面是否有水平滚动,当你点击客户端区域的左上角时,鼠标事件的 clientX 值都将为 0 。最初这个属性被定义为长整型(long integer),如今 CSSOM 视图模块将其重新定义为双精度浮点数(double float)。你可以查阅浏览器兼容性部分的文档来进一步了解有关信息。

    +

    MouseEvent.clientX 是只读属性,它提供事件发生时的应用客户端区域的水平坐标 (与页面坐标不同)。例如,不论页面是否有水平滚动,当你点击客户端区域的左上角时,鼠标事件的 clientX 值都将为 0。最初这个属性被定义为长整型(long integer),如今 CSSOM 视图模块将其重新定义为双精度浮点数(double float)。你可以查阅浏览器兼容性部分的文档来进一步了解有关信息。

    语法

    diff --git a/files/zh-cn/web/api/mouseevent/clienty/index.html b/files/zh-cn/web/api/mouseevent/clienty/index.html index 6fa78e1df20d9b..a4050d11b804f2 100644 --- a/files/zh-cn/web/api/mouseevent/clienty/index.html +++ b/files/zh-cn/web/api/mouseevent/clienty/index.html @@ -8,7 +8,7 @@ ---

    {{APIRef("DOM Events")}}

    -

    MouseEvent.clientY 是只读属性, 它提供事件发生时的应用客户端区域的垂直坐标 (与页面坐标不同)。例如,当你点击客户端区域的左上角时,鼠标事件的 clientY 值为 0 ,这一值与页面是否有垂直滚动无关。

    +

    MouseEvent.clientY 是只读属性,它提供事件发生时的应用客户端区域的垂直坐标 (与页面坐标不同)。例如,当你点击客户端区域的左上角时,鼠标事件的 clientY 值为 0,这一值与页面是否有垂直滚动无关。

    语法

    diff --git a/files/zh-cn/web/api/mutationobserver/observe/index.html b/files/zh-cn/web/api/mutationobserver/observe/index.html index 904a8cf86e095b..fa5c05554f50e1 100644 --- a/files/zh-cn/web/api/mutationobserver/observe/index.html +++ b/files/zh-cn/web/api/mutationobserver/observe/index.html @@ -65,7 +65,7 @@

    当节点断开连接时继

    换句话说,在你收到有关节点从被观察子树中拆分的通知之前,你将收到有关该拆分子树及其节点的更改的通知。这可以防止你丢失在切断连接之后以及在你有机会专门开始观察已移动的节点或子树之前发生的变化。

    -

    这意味着理论上如果你跟踪描述发生的变化的 {{domxref("MutationRecord")}} 对象,你就可以 “撤销” 这些改动,将 DOM 恢复到初始状态。

    +

    这意味着理论上如果你跟踪描述发生的变化的 {{domxref("MutationRecord")}} 对象,你就可以“撤销”这些改动,将 DOM 恢复到初始状态。

    示例

    diff --git a/files/zh-cn/web/api/namednodemap/index.html b/files/zh-cn/web/api/namednodemap/index.html index 077491c8650e84..9dc5be1018afef 100644 --- a/files/zh-cn/web/api/namednodemap/index.html +++ b/files/zh-cn/web/api/namednodemap/index.html @@ -38,9 +38,9 @@

    方法

    {{domxref("NamedNodeMap.getNamedItemNS()")}}
    根据给定的命名空间参数和 name 参数返回一个 {{domxref("Attr")}} 对象。
    {{domxref("NamedNodeMap.setNamedItemNS()")}}
    -
    替换、添加给定命名空间参数和 name 参数的 {{domxref("Attr")}} 对象 。
    +
    替换、添加给定命名空间参数和 name 参数的 {{domxref("Attr")}} 对象。
    {{domxref("NamedNodeMap.removeNamedItemNS()")}}
    -
    删除给定命名空间参数和 name 参数的 {{domxref("Attr")}} 对象 。
    +
    删除给定命名空间参数和 name 参数的 {{domxref("Attr")}} 对象。

    规范

    diff --git a/files/zh-cn/web/api/navigation_timing_api/using_navigation_timing/index.html b/files/zh-cn/web/api/navigation_timing_api/using_navigation_timing/index.html index 64cd80354dce3a..909da0037f12a8 100644 --- a/files/zh-cn/web/api/navigation_timing_api/using_navigation_timing/index.html +++ b/files/zh-cn/web/api/navigation_timing_api/using_navigation_timing/index.html @@ -60,7 +60,7 @@

    确定导航类型

    此信息由 {{domxref("Performance.navigation")}} 属性提供,该属性返回包含所需信息的 {{domxref("PerformanceNavigation")}} 对象。

    -

    让我们将此信息添加到上面的示例中。 新代码如下所示:

    +

    让我们将此信息添加到上面的示例中。新代码如下所示:

    window.addEventListener("load", function() {
       let now = new Date().getTime();
    diff --git a/files/zh-cn/web/api/navigator/clipboard/index.html b/files/zh-cn/web/api/navigator/clipboard/index.html
    index 77d1aa93a2d77e..37653d73280534 100644
    --- a/files/zh-cn/web/api/navigator/clipboard/index.html
    +++ b/files/zh-cn/web/api/navigator/clipboard/index.html
    @@ -13,7 +13,7 @@
       - 粘贴
     translation_of: Web/API/Navigator/clipboard
     ---
    -

    剪贴板 Clipboard API{{domxref("Navigator")}} 接口添加了只读属性 clipboard,该属性返回一个可以读写剪切板内容的 {{domxref("Clipboard")}} 对象。 在 Web 应用中,剪切板 API 可用于实现剪切、复制、粘贴的功能。

    +

    剪贴板 Clipboard API{{domxref("Navigator")}} 接口添加了只读属性 clipboard,该属性返回一个可以读写剪切板内容的 {{domxref("Clipboard")}} 对象。在 Web 应用中,剪切板 API 可用于实现剪切、复制、粘贴的功能。

    只有在用户事先授予网站或应用对剪切板的访问许可之后,才能使用异步剪切板读写方法。许可操作必须通过取得权限 Permissions API"clipboard-read" 和/或 "clipboard-write" 项获得。

    diff --git a/files/zh-cn/web/api/navigator/index.html b/files/zh-cn/web/api/navigator/index.html index 5af9024892d4f2..cc8e892225cbed 100644 --- a/files/zh-cn/web/api/navigator/index.html +++ b/files/zh-cn/web/api/navigator/index.html @@ -24,7 +24,7 @@

    标准属性

    {{domxref("Navigator.activeVRDisplays")}} {{readonlyInline}}{{experimental_inline}}
    筛选所有的 {{domxref("VRDisplay")}} 对象,把其中所有 {{domxref("VRDisplay.ispresenting")}} 属性的值为 true 的对象以数组的形式返回。
    {{domxref("NavigatorID.appCodeName")}} {{readonlyInline}}{{deprecated_inline}}
    -
    返回当前浏览器的内部 “开发代号” 名称。不能保证此属性返回的值是正确的。
    +
    返回当前浏览器的内部“开发代号”名称。不能保证此属性返回的值是正确的。
    {{domxref("NavigatorID.appName")}} {{readonlyInline}}{{deprecated_inline}}
    以 {{domxref("DOMString")}} 的形式返回浏览器官方名称。不能保证此属性返回的值是正确的。
    {{domxref("NavigatorID.appVersion")}} {{readonlyInline}}{{deprecated_inline}}
    diff --git a/files/zh-cn/web/api/navigator/language/index.html b/files/zh-cn/web/api/navigator/language/index.html index a4e3508ec77c53..bcd9c94d843875 100644 --- a/files/zh-cn/web/api/navigator/language/index.html +++ b/files/zh-cn/web/api/navigator/language/index.html @@ -23,9 +23,9 @@

    语法

    一个 {{domxref("DOMString")}}。lang存储了一个在 BCP 47 中定义的语言版本。一些有效的语言版本代码示例包括: “en”、“en-US”、“fr”、“fr-FR”、“es-ES” 等。

    + href="https://tools.ietf.org/rfc/bcp/bcp47.txt">BCP 47 中定义的语言版本。一些有效的语言版本代码示例包括: “en”、“en-US”、“fr”、“fr-FR”、“es-ES”等。

    -

    请注意,在 iOS 10.2 之前的 Safari 中,返回的语言版本代码是小写的: “en-us”、“fr-fr” 等。

    +

    请注意,在 iOS 10.2 之前的 Safari 中,返回的语言版本代码是小写的: “en-us”、“fr-fr”等。

    示例

    diff --git a/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html b/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html index b4e8dd8a9a1351..aa012c7ba477aa 100644 --- a/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html +++ b/files/zh-cn/web/api/navigator/registerprotocolhandler/index.html @@ -43,7 +43,7 @@

    参数

    一个用户可理解的处理器标题。标题会展示给用户,例如弹出对话框“允许这个站点处理 [scheme] 链接吗?”或者在浏览器设置中列出注册的处理器时。
    -

    Note: 出于欺骗的考虑,标题已从规范中删除,但当前所有的浏览器仍要求使用该标题。 建议始终设置标题,因为支持更新规范的浏览器很可能会向后兼容,并且仍接受标题(但不使用它)。

    +

    Note: 出于欺骗的考虑,标题已从规范中删除,但当前所有的浏览器仍要求使用该标题。建议始终设置标题,因为支持更新规范的浏览器很可能会向后兼容,并且仍接受标题(但不使用它)。

    diff --git a/files/zh-cn/web/api/navigator/sendbeacon/index.md b/files/zh-cn/web/api/navigator/sendbeacon/index.md index 8aca7be22ff531..fab1a274072912 100644 --- a/files/zh-cn/web/api/navigator/sendbeacon/index.md +++ b/files/zh-cn/web/api/navigator/sendbeacon/index.md @@ -41,7 +41,7 @@ navigator.sendBeacon(url, data); 这个方法主要用于满足统计和诊断代码的需要,这些代码通常尝试在卸载(unload)文档之前向 Web 服务器发送数据。过早的发送数据可能导致错过收集数据的机会。然而,对于开发者来说保证在文档卸载期间发送数据一直是一个困难。因为用户代理通常会忽略在 {{event("unload")}} 事件处理器中产生的异步 {{domxref("XMLHttpRequest")}}。 -过去,为了解决这个问题, 统计和诊断代码通常要在 +过去,为了解决这个问题,统计和诊断代码通常要在 - 发起一个同步 `XMLHttpRequest` 来发送数据。 - 创建一个 {{HTMLElement("img")}} 元素并设置 `src`,大部分用户代理会延迟卸载(unload)文档以加载图像。 diff --git a/files/zh-cn/web/api/navigator/share/index.html b/files/zh-cn/web/api/navigator/share/index.html index 132e510f7c0239..28f84f4aea7531 100644 --- a/files/zh-cn/web/api/navigator/share/index.html +++ b/files/zh-cn/web/api/navigator/share/index.html @@ -35,7 +35,7 @@

    参数

    返回值

    -

    该方法将会返回一个{{jsxref("Promise")}}。一旦用户完成分享,这个 promise 将会接受 。如果指定的共享数据格式不正确,promise 将会立即拒绝;如果用户取消了分享,promise 也会拒绝。

    +

    该方法将会返回一个{{jsxref("Promise")}}。一旦用户完成分享,这个 promise 将会接受。如果指定的共享数据格式不正确,promise 将会立即拒绝;如果用户取消了分享,promise 也会拒绝。

    例如,在 Android 的 Chrome 上,将在用户选择要共享的应用程序后将会解析共享的内容。

    diff --git a/files/zh-cn/web/api/networkinformation/index.html b/files/zh-cn/web/api/networkinformation/index.html index 2d4cfeb785b052..9fd56223be66bd 100644 --- a/files/zh-cn/web/api/networkinformation/index.html +++ b/files/zh-cn/web/api/networkinformation/index.html @@ -15,7 +15,7 @@

    Properties

    {{domxref("NetworkInformation.type")}} {{readonlyinline}}
    -
    返回设备正在与网络进行通信的连接类型。 它将是以下值之一: +
    返回设备正在与网络进行通信的连接类型。它将是以下值之一:
    • bluetooth
    • cellular
    • diff --git a/files/zh-cn/web/api/networkinformation/rtt/index.html b/files/zh-cn/web/api/networkinformation/rtt/index.html index 26312ba3dbbe31..84451ae54ff801 100644 --- a/files/zh-cn/web/api/networkinformation/rtt/index.html +++ b/files/zh-cn/web/api/networkinformation/rtt/index.html @@ -5,7 +5,7 @@ ---

      {{apiref("Network Information API")}}{{SeeCompatTable}}

      -

      NetworkInformation.rtt 是一个只读属性,返回了当前连接下评估的往返时延(RTT, round-trip time ),并保留该值为 25 千分秒的最接近的整数倍。该值基于最近使用中被监测的最近保持活跃连接的应用层上的 RTT 测量值。它排除了到私有地址空间的连接。如果没有最近的测量数据,该值就基于底层连接技术的属性。

      +

      NetworkInformation.rtt 是一个只读属性,返回了当前连接下评估的往返时延(RTT, round-trip time),并保留该值为 25 千分秒的最接近的整数倍。该值基于最近使用中被监测的最近保持活跃连接的应用层上的 RTT 测量值。它排除了到私有地址空间的连接。如果没有最近的测量数据,该值就基于底层连接技术的属性。

      {{AvailableInWorkers}}

      diff --git a/files/zh-cn/web/api/node/baseuri/index.html b/files/zh-cn/web/api/node/baseuri/index.html index 2a2bae8c47fb91..011b5be2e92326 100644 --- a/files/zh-cn/web/api/node/baseuri/index.html +++ b/files/zh-cn/web/api/node/baseuri/index.html @@ -18,7 +18,7 @@

      当浏览器要获取绝对 URL 时,就需要用基 URL 去解析相对 URL。例如,解析 HTML {{HTMLElement("img")}} 元素的 src 属性时,或者 处理 XML xlink:href 属性时—。

      -

      一般情况下,基 URL 是 document 的 location ,但是它受诸多方面因素的影响,例如 HTML 的 {{HTMLElement("base")}} 元素和 XML xml:base 属性。

      +

      一般情况下,基 URL 是 document 的 location,但是它受诸多方面因素的影响,例如 HTML 的 {{HTMLElement("base")}} 元素和 XML xml:base 属性。

      语法

      @@ -26,7 +26,7 @@

      语法

      -
    • baseURI 是一个 {{ domxref("DOMString") }} 代表当前 {{domxref("Node", "节点")}} 所在文档的基 URI 。如果无法获取则可能返回 null
    • +
    • baseURI 是一个 {{ domxref("DOMString") }} 代表当前 {{domxref("Node", "节点")}} 所在文档的基 URI。如果无法获取则可能返回 null
    • node.baseURI 是只读的。
    • node.baseURI 可能会随时间发生变化。
    @@ -44,7 +44,7 @@

    文档的基 URL

    详细信息请参阅 HTML Living standard 中关于基 URL 的章节

    -

    可以通过 {{domxref("document")}}.baseURI 获取文档的基 URL 。注意检查文档的基 URL 可能会每次请求返回不同的结果,因为 {{HTMLElement("base")}} 标签或文档的 location 可能被改变了。

    +

    可以通过 {{domxref("document")}}.baseURI 获取文档的基 URL。注意检查文档的基 URL 可能会每次请求返回不同的结果,因为 {{HTMLElement("base")}} 标签或文档的 location 可能被改变了。

    元素的基 URL

    diff --git a/files/zh-cn/web/api/node/childnodes/index.html b/files/zh-cn/web/api/node/childnodes/index.html index 0dfb581f603c3c..f558b4c19ec12c 100644 --- a/files/zh-cn/web/api/node/childnodes/index.html +++ b/files/zh-cn/web/api/node/childnodes/index.html @@ -36,7 +36,7 @@

    例子

    备注

    集合的元素是一个节点而不是字符串。要从集合的元素获取数据,你必须使用它们的属性(例如:用 elementNodeReference.childNodes{{ mediawiki.external("1") }}.nodeName 获取它们的名称,等等)。

    -

    document节点 (文档节点) 包含两个子节点: Doctype 声明和根节点。根节点通常为 documentElement 引用,且在 (X)HTML 文档中为 HTML 元素。

    +

    document节点 (文档节点) 包含两个子节点:Doctype 声明和根节点。根节点通常为 documentElement 引用,且在 (X)HTML 文档中为 HTML 元素。

    规范

    • W3C DOM 2 Core: childNodes
    • diff --git a/files/zh-cn/web/api/node/index.html b/files/zh-cn/web/api/node/index.html index f6082f60591d52..fe2b512c0f32dd 100644 --- a/files/zh-cn/web/api/node/index.html +++ b/files/zh-cn/web/api/node/index.html @@ -108,11 +108,11 @@

      属性

      {{DOMxRef("Node.nodeValue")}}
      返回或设置当前节点的值。
      {{DOMxRef("Node.ownerDocument")}} {{readonlyInline}}
      -
      返回这个元素属于的 {{DOMxRef("Document")}}对象 。 如果没有 Document 对象与之关联,返回 null。
      +
      返回这个元素属于的 {{DOMxRef("Document")}}对象。如果没有 Document 对象与之关联,返回 null。
      {{DOMxRef("Node.parentNode")}} {{readonlyInline}}
      -
      返回一个当前节点 {{DOMxRef("Node")}}的父节点 。如果没有这样的节点,比如说像这个节点是树结构的顶端或者没有插入一棵树中, 这个属性返回 null。
      +
      返回一个当前节点 {{DOMxRef("Node")}}的父节点。如果没有这样的节点,比如说像这个节点是树结构的顶端或者没有插入一棵树中,这个属性返回 null。
      {{DOMxRef("Node.parentElement")}} {{readonlyInline}}
      -
      返回一个当前节点的父节点 {{DOMxRef("Element")}} 。 如果当前节点没有父节点或者说父节点不是一个元素 ({{DOMxRef("Element")}}), 这个属性返回 null。
      +
      返回一个当前节点的父节点 {{DOMxRef("Element")}} 。如果当前节点没有父节点或者说父节点不是一个元素 ({{DOMxRef("Element")}}), 这个属性返回 null。
      {{DOMxRef("Node.previousSibling")}} {{readonlyInline}}
      返回一个当前节点同辈的前一个节点 ( {{DOMxRef("Node")}}) ,或者返回 null(如果不存在这样的一个节点的话)。
      {{DOMxRef("Node.textContent")}}
      @@ -131,7 +131,7 @@

      废弃的属性

      {{DOMxRef("Node.namespaceURI")}} {{obsolete_inline}}{{readonlyInline}}
      该节点命名空间的URL,如果没有命名空间则为null
      -

      Note: 在 Firefox 3.5 以及更早的版本中,HTML 的元素都没有命名空间。而在最新的版本中,无论是 HTML 还是 XML 文档树 ,所有元素的命名空间统一为 http://www.w3.org/1999/xhtml/

      +

      Note: 在 Firefox 3.5 以及更早的版本中,HTML 的元素都没有命名空间。而在最新的版本中,无论是 HTML 还是 XML 文档树,所有元素的命名空间统一为 http://www.w3.org/1999/xhtml/

      {{DOMxRef("Node.nodePrincipal")}} {{Non-standard_inline}}{{Obsolete_Inline("gecko46")}}
      @@ -171,7 +171,7 @@

      方法

      {{DOMxRef("Node.lookupPrefix()")}}
      返回包含参数 URI 所对应的命名空间前缀的 {{DOMxRef("DOMString")}},若不存在则返回 null。如果存在多个可匹配的前缀,则返回结果和浏览器具体实现有关。
      {{DOMxRef("Node.lookupNamespaceURI()")}}
      -
      接受一个前缀,并返回前缀所对应节点命名空间 URI 。如果 URI 不存在则返回 null。传入 null 作为 prefix 参数将返回默认命名空间。
      +
      接受一个前缀,并返回前缀所对应节点命名空间 URI。如果 URI 不存在则返回 null。传入 null 作为 prefix 参数将返回默认命名空间。
      {{DOMxRef("Node.normalize()")}}
      对该元素下的所有文本子节点进行整理,合并相邻的文本节点并清除空文本节点。
      {{DOMxRef("Node.removeChild()")}}
      diff --git a/files/zh-cn/web/api/node/insertbefore/index.html b/files/zh-cn/web/api/node/insertbefore/index.html index c68bfa343e01f9..de7f73f76ab38a 100644 --- a/files/zh-cn/web/api/node/insertbefore/index.html +++ b/files/zh-cn/web/api/node/insertbefore/index.html @@ -119,7 +119,7 @@

      示例 3

      parentElement.insertBefore(newElement, theFirstChild); -

      当元素没有首节点时,firstChild 返回 null。该元素仍然会被插入到父元素中,位于最后一个节点后面。又由于父元素没有第一个子节点,也没有最后一个子节点。 最终,新元素成为唯一的子元素。

      +

      当元素没有首节点时,firstChild 返回 null。该元素仍然会被插入到父元素中,位于最后一个节点后面。又由于父元素没有第一个子节点,也没有最后一个子节点。最终,新元素成为唯一的子元素。

      浏览器兼容性

      diff --git a/files/zh-cn/web/api/node/isequalnode/index.html b/files/zh-cn/web/api/node/isequalnode/index.html index 6b9f083fb6305b..88ceb3e896539a 100644 --- a/files/zh-cn/web/api/node/isequalnode/index.html +++ b/files/zh-cn/web/api/node/isequalnode/index.html @@ -25,7 +25,7 @@

      语法

      示例

      -

      在本例中,我们创建了三个 {{HTMLElement("div")}} 块。第一个和第三个 div 都拥有相同的内容和属性,第二个则不一样。然后我们运行 JavaScript ,使用 isEqualNode() 来比较这几个节点。

      +

      在本例中,我们创建了三个 {{HTMLElement("div")}} 块。第一个和第三个 div 都拥有相同的内容和属性,第二个则不一样。然后我们运行 JavaScript,使用 isEqualNode() 来比较这几个节点。

      HTML

      diff --git a/files/zh-cn/web/api/node/nodetype/index.html b/files/zh-cn/web/api/node/nodetype/index.html index c8be937252f2b1..3bc9909b4baf26 100644 --- a/files/zh-cn/web/api/node/nodetype/index.html +++ b/files/zh-cn/web/api/node/nodetype/index.html @@ -101,17 +101,17 @@

      已弃用的节点

    - + - + - +
    type {{domxref("DOMString")}}代表了脚本的MIME类型。它反映了{{htmlattrxref("type","script")}} 属性。如何解析奇异的编程语言,请阅读这篇文章。代表了脚本的 MIME 类型。它反映了{{htmlattrxref("type","script")}} 属性。如何解析奇异的编程语言,请阅读这篇文章。
    src
    htmlFor {{obsolete_inline}} {{domxref("DOMString")}}他htmlFor属性设置或返回的值的属性标签。属性指定的表单元素绑定到一个标签。他 htmlFor 属性设置或返回的值的属性标签。属性指定的表单元素绑定到一个标签。
    event{{obsolete_inline}} {{domxref("DOMString")}}HTML DOM事件允许JavaScript注册不同的事件处理程序的元素在一个HTML文档。HTML DOM 事件允许 JavaScript 注册不同的事件处理程序的元素在一个 HTML 文档。
    charset async {{domxref("Boolean")}} -

    async和defer属性值为bool,它用来说明script脚本应该如何执行。在没有src属性的情况下,async和defer属性可以不指定值。

    +

    async 和 defer 属性值为 bool,它用来说明 script 脚本应该如何执行。在没有 src 属性的情况下,async 和 defer 属性可以不指定值。

    -

    使用该属性有三种模式可供选择,如果async属性存在,脚本将异步执行,只要它是可用的,如果async属性不存在,而defer属性存在,脚本将会在页面完成解析后执行,如果都不存在,那么脚本会在useragent解析页面之前被取出并立刻执行。

    +

    使用该属性有三种模式可供选择,如果 async 属性存在,脚本将异步执行,只要它是可用的,如果 async 属性不存在,而 defer 属性存在,脚本将会在页面完成解析后执行,如果都不存在,那么脚本会在 useragent 解析页面之前被取出并立刻执行。

    -
    注意:这些属性的处理细节,主要是历史原因,有些重要的,涉及很多方面的HTML。因此实现需求的必要性分散在规范。这些描述这个处理的核心算法,但这些算法参考和引用的解析规则{ HTMLElement("脚本")} { }开始和结束标记在HTML中,在国外内容,并在XML中,规则的document . write()方法,处理脚本等。
    +
    注意:这些属性的处理细节,主要是历史原因,有些重要的,涉及很多方面的 HTML。因此实现需求的必要性分散在规范。这些描述这个处理的核心算法,但这些算法参考和引用的解析规则{ HTMLElement("脚本")} { }开始和结束标记在 HTML 中,在国外内容,并在 XML 中,规则的 document . write() 方法,处理脚本等。
    -

    延迟属性可以指定即使指定异步属性,导致遗留Web浏览器只支持推迟(而不是异步)回落推迟行为而不是同步阻塞是默认的行为。

    +

    延迟属性可以指定即使指定异步属性,导致遗留 Web 浏览器只支持推迟 (而不是异步) 回落推迟行为而不是同步阻塞是默认的行为。

    crossOrigin {{experimental_inline}} {{domxref("DOMString")}}是一个{{domxref("DOMString")}},对应于歌珥设置这个脚本元素。有关详细信息,请参阅歌珥设置属性。这对脚本控制,从其他来源,获得错误信息是否会被暴露出来。是一个{{domxref("DOMString")}},对应于歌珥设置这个脚本元素。有关详细信息,请参阅歌珥设置属性。这对脚本控制,从其他来源,获得错误信息是否会被暴露出来。
    text {{domxref("DOMString")}} -

    IDL属性内容的文本必须返回一个连接的所有文本节点的孩子{{HTMLElement("script")}}元素(忽略任何其他节点如评论或元素),在树的顺序。设置,它必须采取行动一样textContent IDL属性。

    +

    IDL 属性内容的文本必须返回一个连接的所有文本节点的孩子{{HTMLElement("script")}}元素 (忽略任何其他节点如评论或元素),在树的顺序。设置,它必须采取行动一样 textContent IDL 属性。

    -
    注意:当插入使用document . write()方法,{ { HTMLElement("脚本")} }元素执行(通常是同步),但当插入使用innerHTML和outerHTML属性,他们不执行。
    +
    注意:当插入使用 document . write() 方法,{ { HTMLElement("脚本")} }元素执行 (通常是同步),但当插入使用 innerHTML 和 outerHTML 属性,他们不执行。
    placeholderstring: 返回/设置元素{{htmlattrxref("placeholder", "textarea")}} 属性, 用于提示用户在组件中应该输入什么。string: 返回/设置元素{{htmlattrxref("placeholder", "textarea")}} 属性,用于提示用户在组件中应该输入什么。
    rows 允许执行任何操作,包括删除和创建对象存储和索引。
    - 此模式是用于开始使用IDBDatabasesetVersion()方法更新版本号事务。 这种模式的事务无法与其它事务并发运行。
    + 此模式是用于开始使用IDBDatabasesetVersion()方法更新版本号事务。这种模式的事务无法与其它事务并发运行。
    这种模式下的事务被称为“升级事务”。
    Node.ENTITY_REFERENCE_NODE 5一个 XML 实体引用节点。 在 {{SpecName("DOM4")}} 规范里被移除。一个 XML 实体引用节点。在 {{SpecName("DOM4")}} 规范里被移除。
    Node.ENTITY_NODE 6一个 XML <!ENTITY ...>  节点。 在 {{SpecName("DOM4")}} 规范中被移除。一个 XML <!ENTITY ...>  节点。在 {{SpecName("DOM4")}} 规范中被移除。
    Node.NOTATION_NODE 12一个 XML <!NOTATION ...> 节点。 在 {{SpecName("DOM4")}} 规范里被移除。一个 XML <!NOTATION ...> 节点。在 {{SpecName("DOM4")}} 规范里被移除。
    diff --git a/files/zh-cn/web/api/nodeiterator/index.html b/files/zh-cn/web/api/nodeiterator/index.html index d4a09746c48390..a87dd3d404515c 100644 --- a/files/zh-cn/web/api/nodeiterator/index.html +++ b/files/zh-cn/web/api/nodeiterator/index.html @@ -116,7 +116,7 @@

    方法

    {{domxref("NodeIterator.detach()")}} {{obsolete_inline()}}
    -
    这个方法不是必需的。它现在什么也不做. 之前用来告诉引擎,NodeIterator 已经不会再使用,现在已经不做任何事情。
    +
    这个方法不是必需的。它现在什么也不做。之前用来告诉引擎,NodeIterator 已经不会再使用,现在已经不做任何事情。
    {{domxref("NodeIterator.previousNode()")}}
    返回前一个 {{domxref("Node")}},如果不存在则返回 null.
    {{domxref("NodeIterator.nextNode()")}}
    diff --git a/files/zh-cn/web/api/notification/notification/index.html b/files/zh-cn/web/api/notification/notification/index.html index 5b50f93703b74a..9e0da93553b128 100644 --- a/files/zh-cn/web/api/notification/notification/index.html +++ b/files/zh-cn/web/api/notification/notification/index.html @@ -36,12 +36,12 @@

    参数

  • requireInteraction: 表示通知应保持有效,直到用户点击或关闭它,而不是自动关闭。默认值为 false。
  • -

    以下选项列在最新规范中,但在任何浏览器中都不支持. It is advisable to keep checking back regularly to see if the status of these has updated, and let us know if you find any out of date information.

    +

    以下选项列在最新规范中,但在任何浏览器中都不支持。It is advisable to keep checking back regularly to see if the status of these has updated, and let us know if you find any out of date information.

    • silent: 一个 {{domxref("Boolean")}} 指明通知是否应该是无声的,即,不需要发出声音或振动,无论设备设置如何。默认值为 false,这意味着它不会保持静默。
    • sound:一个 {{domxref("USVString")}} 包含通知触发时要播放的音频文件的 URL。
    • -
    • noscreen: 一个 {{domxref("Boolean")}} 指定通知触发是否应启用设备的屏幕。 默认值为 false,这意味着它将启用屏幕。
    • +
    • noscreen: 一个 {{domxref("Boolean")}} 指定通知触发是否应启用设备的屏幕。默认值为 false,这意味着它将启用屏幕。
    • sticky: 一个 {{domxref("Boolean")}} 指明通知是否应该是“粘”, 即不易被用户清理。默认值为 false,这意味着它不会粘。
    diff --git a/files/zh-cn/web/api/notifications_api/index.html b/files/zh-cn/web/api/notifications_api/index.html index 42a280e20dbcf0..daf2fb8988c07d 100644 --- a/files/zh-cn/web/api/notifications_api/index.html +++ b/files/zh-cn/web/api/notifications_api/index.html @@ -75,7 +75,7 @@

    浏览器兼容性

    Firefox OS permissions

    -

    当你在 Firefox OS app 中使用通知时,请确保在 manifest 文件中添加了desktop-notification 权限 。 Notifications can be used at any permission level, hosted or above:

    +

    当你在 Firefox OS app 中使用通知时,请确保在 manifest 文件中添加了desktop-notification 权限。 Notifications can be used at any permission level, hosted or above:

    "permissions": {
       "desktop-notification": {}
    diff --git a/files/zh-cn/web/api/oes_vertex_array_object/index.html b/files/zh-cn/web/api/oes_vertex_array_object/index.html
    index f47c4a6cbdc229..01225b48e0187a 100644
    --- a/files/zh-cn/web/api/oes_vertex_array_object/index.html
    +++ b/files/zh-cn/web/api/oes_vertex_array_object/index.html
    @@ -19,7 +19,7 @@ 

    常量

    ext.VERTEX_ARRAY_BINDING_OES
    -
    当作为{{domxref("WebGLRenderingContext.getParameter()", "gl.getParameter()")}}中的pname参数传递时,返回一个{{domxref("WebGLVertexArrayObject")}} 对象 。
    +
    当作为{{domxref("WebGLRenderingContext.getParameter()", "gl.getParameter()")}}中的pname参数传递时,返回一个{{domxref("WebGLVertexArrayObject")}} 对象。

    函数

    diff --git a/files/zh-cn/web/api/offlineaudiocontext/index.html b/files/zh-cn/web/api/offlineaudiocontext/index.html index e3c46fe167f4cd..653cf0521b5dc0 100644 --- a/files/zh-cn/web/api/offlineaudiocontext/index.html +++ b/files/zh-cn/web/api/offlineaudiocontext/index.html @@ -94,7 +94,7 @@

    例子

    song.start(); } }).catch(function(err) { - console.log('渲染失败: ' + err); + console.log('渲染失败:' + err); // 注意:当 OfflineAudioContext 上 startRendering 被立刻调用,Promise 应该被 reject }); }); diff --git a/files/zh-cn/web/api/offlineaudiocontext/offlineaudiocontext/index.html b/files/zh-cn/web/api/offlineaudiocontext/offlineaudiocontext/index.html index be3226bfd3e5af..faa3c5fe660454 100644 --- a/files/zh-cn/web/api/offlineaudiocontext/offlineaudiocontext/index.html +++ b/files/zh-cn/web/api/offlineaudiocontext/offlineaudiocontext/index.html @@ -41,7 +41,7 @@

    例子

    -

    注意: 想要获取完整的例子,请看我们在 Github 仓库的 offline-audio-context-promise (也可以看 源代码 )

    +

    注意:想要获取完整的例子,请看我们在 Github 仓库的 offline-audio-context-promise (也可以看 源代码 )

    标准

    diff --git a/files/zh-cn/web/api/offscreencanvas/index.html b/files/zh-cn/web/api/offscreencanvas/index.html index ec065effa7c3ea..484c492c07e2e1 100644 --- a/files/zh-cn/web/api/offscreencanvas/index.html +++ b/files/zh-cn/web/api/offscreencanvas/index.html @@ -51,9 +51,9 @@

    例子

    同步显示 OffscreenCanvas 中的帧

    -

    一种方式是使用OffscreenCanvas API,也就是用已经包含OffscreenCanvas对象的{{domxref("RenderingContext")}} 来生成新的帧。 每次一个新的帧在画布中完成渲染,{{domxref("OffscreenCanvas.transferToImageBitmap", "transferToImageBitmap()")}} 方法都会被调用来保存最近渲染的图像。该方法返回一个{{domxref("ImageBitmap")}}对象,该对象可以被用在各种 Web APIs 中,也可以用在下一个 canvas 中,并且不需要转换备份。

    +

    一种方式是使用OffscreenCanvas API,也就是用已经包含OffscreenCanvas对象的{{domxref("RenderingContext")}} 来生成新的帧。每次一个新的帧在画布中完成渲染,{{domxref("OffscreenCanvas.transferToImageBitmap", "transferToImageBitmap()")}} 方法都会被调用来保存最近渲染的图像。该方法返回一个{{domxref("ImageBitmap")}}对象,该对象可以被用在各种 Web APIs 中,也可以用在下一个 canvas 中,并且不需要转换备份。

    -

    为了显示ImageBitmap,你可以用{{domxref("ImageBitmapRenderingContext")}}上下文,通过一个 canvas(可见的)元素调用canvas.getContext("bitmaprenderer")方法来创建它。该上下文只提供用ImageBitmap替换 canvas 的内容的功能。调用{{domxref("ImageBitmapRenderingContext.transferFromImageBitmap()")}} 以前的渲染结果并且通过 OffscreenCanvas 保存ImageBitmap,会在 canvas 里显示ImageBitmap并且转换其所有权到 canvas。 一个单独的 OffscreenCanvas 可以将帧转换到任意数量的其他ImageBitmapRenderingContext对象。

    +

    为了显示ImageBitmap,你可以用{{domxref("ImageBitmapRenderingContext")}}上下文,通过一个 canvas(可见的)元素调用canvas.getContext("bitmaprenderer")方法来创建它。该上下文只提供用ImageBitmap替换 canvas 的内容的功能。调用{{domxref("ImageBitmapRenderingContext.transferFromImageBitmap()")}} 以前的渲染结果并且通过 OffscreenCanvas 保存ImageBitmap,会在 canvas 里显示ImageBitmap并且转换其所有权到 canvas。一个单独的 OffscreenCanvas 可以将帧转换到任意数量的其他ImageBitmapRenderingContext对象。

    提供两个 {{HTMLElement("canvas")}} 元素

    diff --git a/files/zh-cn/web/api/oscillatornode/index.html b/files/zh-cn/web/api/oscillatornode/index.html index 996361576f9f05..999c2520a53e5a 100644 --- a/files/zh-cn/web/api/oscillatornode/index.html +++ b/files/zh-cn/web/api/oscillatornode/index.html @@ -38,7 +38,7 @@

    构造函数

    {{domxref("OscillatorNode.OscillatorNode", "OscillatorNode()")}}
    -
    创建一个 OscillatorNode 对象的示例,为 node属性提供可选的一个定义默认值的对象.  如果默认值可接受,你可以简单地调用{{domxref("AudioContext.createOscillator()")}}工厂方法。
    +
    创建一个 OscillatorNode 对象的示例,为 node属性提供可选的一个定义默认值的对象。 如果默认值可接受,你可以简单地调用{{domxref("AudioContext.createOscillator()")}}工厂方法。

    属性

    diff --git a/files/zh-cn/web/api/page_visibility_api/index.html b/files/zh-cn/web/api/page_visibility_api/index.html index f3f5ad024a1466..69290a0afad06f 100644 --- a/files/zh-cn/web/api/page_visibility_api/index.html +++ b/files/zh-cn/web/api/page_visibility_api/index.html @@ -15,7 +15,7 @@

    注意:页面可见性 API 对于节省资源和提高性能特别有用,它使页面在文档不可见时避免执行不必要的任务。

  • -

    当用户最小化窗口或切换到另一个选项卡时,API 会发送{{event("visibilitychange")}}事件,让监听者知道页面状态已更改。你可以检测事件并执行某些操作或行为不同。例如,如果您的网络应用正在播放视频,则可以在用户将标签放入背景时暂停视频,并在用户返回标签时恢复播放。 用户不会在视频中丢失位置,视频的音轨不会干扰新前景选项卡中的音频,并且用户在此期间不会错过任何视频。

    +

    当用户最小化窗口或切换到另一个选项卡时,API 会发送{{event("visibilitychange")}}事件,让监听者知道页面状态已更改。你可以检测事件并执行某些操作或行为不同。例如,如果您的网络应用正在播放视频,则可以在用户将标签放入背景时暂停视频,并在用户返回标签时恢复播放。用户不会在视频中丢失位置,视频的音轨不会干扰新前景选项卡中的音频,并且用户在此期间不会错过任何视频。

    {{HTMLElement("iframe")}}的可见性状态与父文档相同。使用 CSS 属性(例如{{cssxref("display", "display: none;")}})隐藏<iframe>不会触发可见性事件或更改框架中包含的文档的状态。

    @@ -122,7 +122,7 @@

    属性

    {{domxref("Document.visibilityState")}} {{ReadOnlyInline}}
    是一个用来展示文档当前的可见性的{{domxref("DOMString")}} 。该属性的值为以下值之一:
      -
    • visible : 页面内容至少是部分可见。 在实际中,这意味着页面是非最小化窗口的前景选项卡。
    • +
    • visible : 页面内容至少是部分可见。在实际中,这意味着页面是非最小化窗口的前景选项卡。
    • hidden : 页面内容对用户不可见。 在实际中,这意味着文档可以是一个后台标签,或是最小化窗口的一部分,或是在操作系统锁屏激活的状态下。
    • prerender : 页面内容正在被预渲染且对用户是不可见的 (被 document.hidden 当做隐藏). 文档可能初始状态为 prerender,但绝不会从其它值转为该值。>
    • 注释:有的浏览器不支持此功能unloaded : 页面正在从内存中卸载。
    • diff --git a/files/zh-cn/web/api/path2d/index.html b/files/zh-cn/web/api/path2d/index.html index a3ca6c24f3f3f0..58a1714ce10db6 100644 --- a/files/zh-cn/web/api/path2d/index.html +++ b/files/zh-cn/web/api/path2d/index.html @@ -26,11 +26,11 @@

      方法

      {{domxref("CanvasRenderingContext2D.lineTo()", "Path2D.lineTo()")}}
      使用直线连接子路径的终点到 x, y  坐标。
      {{domxref("CanvasRenderingContext2D.bezierCurveTo()", "Path2D.bezierCurveTo()")}}
      -
      添加一条三次贝赛尔曲线到当前路径。 该方法需要三个点。 第一、第二个点是控制点,第三个点是结束点。起始点是当前路径的最后一个点,绘制贝赛尔曲线前,可以通过调用 moveTo() 进行修改。
      +
      添加一条三次贝赛尔曲线到当前路径。该方法需要三个点。 第一、第二个点是控制点,第三个点是结束点。起始点是当前路径的最后一个点,绘制贝赛尔曲线前,可以通过调用 moveTo() 进行修改。
      {{domxref("CanvasRenderingContext2D.quadraticCurveTo()", "Path2D.quadraticCurveTo()")}}
      添加一条二次贝赛尔曲线到当前路径。 
      {{domxref("CanvasRenderingContext2D.arc()", "Path2D.arc()")}}
      -
      添加一条圆弧路径。 圆弧路径的圆心在 (x, y) 位置,半径为 r ,根据anticlockwise (默认为顺时针)指定的方向从 startAngle 开始绘制,到 endAngle 结束。
      +
      添加一条圆弧路径。圆弧路径的圆心在 (x, y) 位置,半径为 r ,根据anticlockwise (默认为顺时针)指定的方向从 startAngle 开始绘制,到 endAngle 结束。
      {{domxref("CanvasRenderingContext2D.arcTo()", "Path2D.arcTo()")}}
      根据控制点和半径添加一条圆弧路径,使用直线连接前一个点。
      {{domxref("CanvasRenderingContext2D.ellipse()", "Path2D.ellipse()")}}
      diff --git a/files/zh-cn/web/api/performance/measure/index.html b/files/zh-cn/web/api/performance/measure/index.html index 1d2625d974bb6c..9ffa445346de31 100644 --- a/files/zh-cn/web/api/performance/measure/index.html +++ b/files/zh-cn/web/api/performance/measure/index.html @@ -8,7 +8,7 @@ ---
      {{APIRef("User Timing API")}}
      -

       measure() 方法在浏览器性能记录缓存中创建了一个名为{{domxref("DOMHighResTimeStamp","时间戳")}}的记录来记录两个特殊标志位(通常称为开始标志和结束标志)。 被命名的{{domxref("DOMHighResTimeStamp","时间戳")}}称为一次测量(measure)。

      +

       measure() 方法在浏览器性能记录缓存中创建了一个名为{{domxref("DOMHighResTimeStamp","时间戳")}}的记录来记录两个特殊标志位(通常称为开始标志和结束标志)。被命名的{{domxref("DOMHighResTimeStamp","时间戳")}}称为一次测量(measure)。

      {{AvailableInWorkers}}

      @@ -32,11 +32,11 @@

      参数

      name
      -
      一个 {{domxref("DOMString")}}, 代表测量的名字。
      +
      一个 {{domxref("DOMString")}},代表测量的名字。
      startMark {{optional_inline}}
      -
      一个 {{domxref("DOMString")}}, 代表测量的开始标志名字。 May also be the name of a {{domxref("PerformanceTiming")}} property.
      +
      一个 {{domxref("DOMString")}},代表测量的开始标志名字。May also be the name of a {{domxref("PerformanceTiming")}} property.
      endMark {{optional_inline}}
      -
      一个{{domxref("DOMString")}}, 代表测量的结束标志名字。May also be the name of a {{domxref("PerformanceTiming")}} property.
      +
      一个{{domxref("DOMString")}},代表测量的结束标志名字。May also be the name of a {{domxref("PerformanceTiming")}} property.

      返回值

      diff --git a/files/zh-cn/web/api/performance_api/index.html b/files/zh-cn/web/api/performance_api/index.html index 7bae68cab683c9..fbdbbecfdceed9 100644 --- a/files/zh-cn/web/api/performance_api/index.html +++ b/files/zh-cn/web/api/performance_api/index.html @@ -10,13 +10,13 @@

      高时间采样率标准定义了{{domxref("Performance")}}接口,该接口支持应用程序中客户端的延时测量。{{domxref("Performance")}}接口被认为是高采样率的,因为其精确度可达千分之一毫秒(受硬件或软件限制)。这些接口支持许多使用情形,包括计算帧速率(在动画中可能很重要)和基准测试(例如加载资源的时间)。

      -

      由于平台的系统时钟会受到各种时滞(例如 NTP 调整)的影响,该接口支持单调时钟,即一直增加的时钟。 鉴于这个原因,Performance API 定义了{{domxref("DOMHighResTimeStamp")}}类型,而不是使用{{jsxref("Date.now","Date.now()")}}接口。

      +

      由于平台的系统时钟会受到各种时滞(例如 NTP 调整)的影响,该接口支持单调时钟,即一直增加的时钟。鉴于这个原因,Performance API 定义了{{domxref("DOMHighResTimeStamp")}}类型,而不是使用{{jsxref("Date.now","Date.now()")}}接口。

      DOMHighResTimeStamp

      -

      {{domxref("DOMHighResTimeStamp")}}类型,顾名思义,表示高采样率的时间戳。 此类型是 double ,由性能接口使用。 该值可以是离散时间戳,也可以是两个离散时间戳之间的时间间隔。

      +

      {{domxref("DOMHighResTimeStamp")}}类型,顾名思义,表示高采样率的时间戳。此类型是 double ,由性能接口使用。该值可以是离散时间戳,也可以是两个离散时间戳之间的时间间隔。

      -

      DOMHighResTimeStamp 的单位是毫秒,应精确到 5 µs(微秒)。 但是,如果浏览器无法提供精确到 5 微秒的时间数值(例如由于硬件或软件限制),则浏览器可以将该值表示为精确到毫秒的时间(以毫秒为单位)。

      +

      DOMHighResTimeStamp 的单位是毫秒,应精确到 5 µs(微秒)。但是,如果浏览器无法提供精确到 5 微秒的时间数值(例如由于硬件或软件限制),则浏览器可以将该值表示为精确到毫秒的时间(以毫秒为单位)。

      方法

      diff --git a/files/zh-cn/web/api/performance_property/index.html b/files/zh-cn/web/api/performance_property/index.html index efa6d103192298..798e3508f763dc 100644 --- a/files/zh-cn/web/api/performance_property/index.html +++ b/files/zh-cn/web/api/performance_property/index.html @@ -30,7 +30,7 @@

      属性

      {{domxref("Performance.timing", "performance.timing")}}
      是一个{{domxref("PerformanceTiming")}} 对象,包含延迟相关的性能信息。
      {{domxref("Performance.navigation", "performance.navigation")}}
      -
      是一个 {{domxref("PerformanceNavigation")}} 对象,该对象表示在当前给定浏览上下文中网页导航的类型(译者注:TYPE_BACK_FORWARD,TYPE_NAVIGATE, TYPE_RELOAD,TYPE_RESERVED)以及次数。
      +
      是一个 {{domxref("PerformanceNavigation")}} 对象,该对象表示在当前给定浏览上下文中网页导航的类型(译者注:TYPE_BACK_FORWARD,TYPE_NAVIGATE,TYPE_RELOAD,TYPE_RESERVED)以及次数。
      performance.memory
      在 Chrome 中添加的一个非标准扩展。
      diff --git a/files/zh-cn/web/api/performanceentry/duration/index.html b/files/zh-cn/web/api/performanceentry/duration/index.html index 198194fafc425b..82fb41e1443c01 100644 --- a/files/zh-cn/web/api/performanceentry/duration/index.html +++ b/files/zh-cn/web/api/performanceentry/duration/index.html @@ -13,8 +13,8 @@
    • "frame" - returns a {{domxref("DOMHighResTimeStamp","timestamp")}} indicating the difference between the startTimes of two successive frames.
    • "mark" - returns "0" (a mark has no duration).
    • "measure" - returns the {{domxref("DOMHighResTimeStamp","timestamp")}} that is the duration of the measure.
    • -
    • "navigation" - returns the {{domxref("DOMHighResTimeStamp","timestamp")}} that is the difference between the {{domxref("PerformanceEntry.loadEventEnd")}} and {{domxref("PerformanceEntry.startTime")}} properties, respectively.例如: entry.entryType "navigation",entry.duration 3611.26, entry.loadEventEnd 3611.2672285754975, entry.startTime 0;
    • -
    • "resource" - 返回 resource 的{{domxref("PerformanceEntry.responseEnd","responseEnd")}} {{domxref("DOMHighResTimeStamp","timestamp")}} 和  {{domxref("PerformanceEntry.startTime","startTime")}} {{domxref("DOMHighResTimeStamp","timestamp")}}的时间差。例如: entry.entryType "resource",entry.duration 901.1400000000001, entry.responseEnd 2527.82, entry.startTime 1626.68, 2527.82 - 1626.68 == 901.1400000000001;
    • +
    • "navigation" - returns the {{domxref("DOMHighResTimeStamp","timestamp")}} that is the difference between the {{domxref("PerformanceEntry.loadEventEnd")}} and {{domxref("PerformanceEntry.startTime")}} properties, respectively.例如:entry.entryType "navigation",entry.duration 3611.26, entry.loadEventEnd 3611.2672285754975, entry.startTime 0;
    • +
    • "resource" - 返回 resource 的{{domxref("PerformanceEntry.responseEnd","responseEnd")}} {{domxref("DOMHighResTimeStamp","timestamp")}} 和  {{domxref("PerformanceEntry.startTime","startTime")}} {{domxref("DOMHighResTimeStamp","timestamp")}}的时间差。例如:entry.entryType "resource",entry.duration 901.1400000000001, entry.responseEnd 2527.82, entry.startTime 1626.68,2527.82 - 1626.68 == 901.1400000000001;

    This property is {{readonlyInline}}.

    diff --git a/files/zh-cn/web/api/performanceentry/entrytype/index.html b/files/zh-cn/web/api/performanceentry/entrytype/index.html index d94f4059977eec..8b04ec320b8558 100644 --- a/files/zh-cn/web/api/performanceentry/entrytype/index.html +++ b/files/zh-cn/web/api/performanceentry/entrytype/index.html @@ -14,7 +14,7 @@

    语法

    返回值

    -

    返回值取决于  PerformanceEntry 对象的 subtype, entryType 的取值会影响{{domxref('PerformanceEntry.name')}} 属性, 具体如下表所示. 

    +

    返回值取决于  PerformanceEntry 对象的 subtype,entryType 的取值会影响{{domxref('PerformanceEntry.name')}} 属性, 具体如下表所示. 

    diff --git a/files/zh-cn/web/api/performancenavigationtiming/index.html b/files/zh-cn/web/api/performancenavigationtiming/index.html index 0cdde249825ed0..addf8382563f55 100644 --- a/files/zh-cn/web/api/performancenavigationtiming/index.html +++ b/files/zh-cn/web/api/performancenavigationtiming/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("Navigation Timing")}}{{SeeCompatTable}}
    -

    PerformanceNavigationTiming 提供了用于存储和检索有关浏览器文档事件的指标的方法和属性。 例如,此接口可用于确定加载或卸载文档需要多少时间。

    +

    PerformanceNavigationTiming 提供了用于存储和检索有关浏览器文档事件的指标的方法和属性。例如,此接口可用于确定加载或卸载文档需要多少时间。

    diff --git a/files/zh-cn/web/api/performanceobserver/observe/index.html b/files/zh-cn/web/api/performanceobserver/observe/index.html index 5ea2209e862666..7b949cf763cfae 100644 --- a/files/zh-cn/web/api/performanceobserver/observe/index.html +++ b/files/zh-cn/web/api/performanceobserver/observe/index.html @@ -42,7 +42,7 @@

    示例

    var observer = new PerformanceObserver(function(list, obj) { var entries = list.getEntries(); for (var i=0; i < entries.length; i++) { -  //处理 “mark” 和 “frame” 事件 +  //处理“mark”和“frame”事件 } }); //调用 observer 对象的 observe() 方法 @@ -52,7 +52,7 @@

    示例

    //预先声明回调函数 perf_observer function perf_observer(list, observer) { - //处理 “measure” 事件 + //处理“measure”事件 } //再将其传入 PerformanceObserver(),成功 new 了一个 PerformanceObserver 类的,名为 observer2 的对象 var observer2 = new PerformanceObserver(perf_observer); diff --git a/files/zh-cn/web/api/performanceresourcetiming/index.html b/files/zh-cn/web/api/performanceresourcetiming/index.html index 7ab11d70fb16c4..159c27984d5725 100644 --- a/files/zh-cn/web/api/performanceresourcetiming/index.html +++ b/files/zh-cn/web/api/performanceresourcetiming/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("Resource Timing API")}}
    -
    PerformanceResourceTiming 接口可以检索和分析有关加载应用程序资源的详细网络计时数据。 应用程序可以使用 timing 指标来确定获取特定资源所需的时间长度,例如{{domxref("XMLHttpRequest")}},{{SVGElement("SVG","SVG element")}},image 或 script。
    +
    PerformanceResourceTiming 接口可以检索和分析有关加载应用程序资源的详细网络计时数据。应用程序可以使用 timing 指标来确定获取特定资源所需的时间长度,例如{{domxref("XMLHttpRequest")}},{{SVGElement("SVG","SVG element")}},image 或 script。
    @@ -32,7 +32,7 @@

    属性

    返回{{domxref("DOMHighResTimeStamp","timestamp")}},它是{{domxref("PerformanceResourceTiming.responseEnd","responseEnd")}}和{{domxref("PerformanceEntry.startTime","startTime")}}属性之间的差异。
    -

    该接口还支持以下属性,这些属性按记录顺序列出以获取单个资源。 按字母顺序排列的列表显示在左侧的导航栏中。

    +

    该接口还支持以下属性,这些属性按记录顺序列出以获取单个资源。按字母顺序排列的列表显示在左侧的导航栏中。

    {{domxref('PerformanceResourceTiming.initiatorType')}}{{readonlyInline}}
    @@ -40,9 +40,9 @@

    属性

    {{domxref('PerformanceResourceTiming.nextHopProtocol')}}{{readonlyInline}}
    返回{{domxref("DOMString","string")}} ,表示用于获取资源的网络协议,由ALPN Protocol ID (RFC7301)标识。
    {{domxref('PerformanceResourceTiming.workerStart')}}{{readonlyInline}}
    -
    如果 Service Worker 线程已在运行,则在调用{{domxref("FetchEvent")}}之前立即返回{{domxref("DOMHighResTimeStamp")}},如果尚未运行,则在启动 Service Worker 线程之前立即返回{{domxref("DOMHighResTimeStamp")}}。 如果资源未被 Service Worker 拦截,则该属性将始终返回 0。
    +
    如果 Service Worker 线程已在运行,则在调用{{domxref("FetchEvent")}}之前立即返回{{domxref("DOMHighResTimeStamp")}},如果尚未运行,则在启动 Service Worker 线程之前立即返回{{domxref("DOMHighResTimeStamp")}}。如果资源未被 Service Worker 拦截,则该属性将始终返回 0。
    {{domxref('PerformanceResourceTiming.redirectStart')}}{{readonlyInline}}
    -
    返回{{domxref("DOMHighResTimeStamp")}}, 表示初始重定向的开始获取时间。
    +
    返回{{domxref("DOMHighResTimeStamp")}},表示初始重定向的开始获取时间。
    {{domxref('PerformanceResourceTiming.redirectEnd')}}{{readonlyInline}}
    返回{{domxref("DOMHighResTimeStamp")}} ,紧接在收到最后一次重定向响应的最后一个字节后。
    {{domxref('PerformanceResourceTiming.fetchStart')}}{{readonlyInline}}
    @@ -64,7 +64,7 @@

    属性

    {{domxref('PerformanceResourceTiming.responseEnd')}}{{readonlyInline}}
    返回{{domxref("DOMHighResTimeStamp")}} ,紧接在浏览器收到资源的最后一个字节之后或紧接在传输连接关闭之前,以先到者为准。
    {{domxref('PerformanceResourceTiming.transferSize')}}{{readonlyInline}}
    -
    表示获取资源的大小(以八位字节为单位)的数字。 包括响应头字段和响应 payload body 的大小。
    +
    表示获取资源的大小(以八位字节为单位)的数字。包括响应头字段和响应 payload body 的大小。
    {{domxref('PerformanceResourceTiming.encodedBodySize')}}{{readonlyInline}}
    在删除任何应用的内容编码之前,从 payload body 的提取(HTTP 或高速缓存)接收的大小(以八位字节为单位)的数字
    {{domxref('PerformanceResourceTiming.decodedBodySize')}}{{readonlyInline}}
    @@ -77,7 +77,7 @@

    方法

    {{domxref("PerformanceResourceTiming.toJSON()")}}
    -
    返回{{domxref("DOMString")}}, 它是 {{domxref("PerformanceResourceTiming")}} 对象的 JSON 表示形式。
    +
    返回{{domxref("DOMString")}},它是 {{domxref("PerformanceResourceTiming")}} 对象的 JSON 表示形式。

    Example

    diff --git a/files/zh-cn/web/api/permissions_api/using_the_permissions_api/index.html b/files/zh-cn/web/api/permissions_api/using_the_permissions_api/index.html index 86f3ee868295d1..869cdc98b8cc99 100644 --- a/files/zh-cn/web/api/permissions_api/using_the_permissions_api/index.html +++ b/files/zh-cn/web/api/permissions_api/using_the_permissions_api/index.html @@ -37,7 +37,7 @@

    一个简单的例子

    Screenshot showing a map of Greenfield, UK.

    -

    You can 在线运行, 或 在 Github 查看源码。 大部分代码都很简单且常见──所以接下来我们会重点关注和 Permission API 有关的代码,如果你想学习其他部分,请自行阅读。

    +

    You can 在线运行,或 在 Github 查看源码。大部分代码都很简单且常见──所以接下来我们会重点关注和 Permission API 有关的代码,如果你想学习其他部分,请自行阅读。

    访问 Permissions API

    @@ -119,7 +119,7 @@

    总结和展望未来

    • Firefox: 工具 > 页面信息 > 权限 > 访问你的位置。选择“总是询问”。
    • -
    • Chrome: 汉堡菜单 > 设置 > 显示高级设置。在隐私部分,点击“内容设置”。在出现的对话框中,找到 “位置” 部分,选择“当网站试图访问时询问”...最后,点击“管理特例”,移除你对特定网站的授权。
    • +
    • Chrome: 汉堡菜单 > 设置 > 显示高级设置。在隐私部分,点击“内容设置”。在出现的对话框中,找到“位置”部分,选择“当网站试图访问时询问”...最后,点击“管理特例”,移除你对特定网站的授权。

    但是,未来浏览器会提供 request() 方法,他让我们可以在任何时候以编程的方式来请求权限。这非常值得期待尽快被实现。

    diff --git a/files/zh-cn/web/api/pointer_events/index.html b/files/zh-cn/web/api/pointer_events/index.html index e582ac55facc4f..b047b8fd71a7dd 100644 --- a/files/zh-cn/web/api/pointer_events/index.html +++ b/files/zh-cn/web/api/pointer_events/index.html @@ -107,7 +107,7 @@

    事件类型与全局事件处理

    - + @@ -380,7 +380,7 @@

    touch-action CSS 属性

    CSS 属性{{cssxref("touch-action")}}被用来指明浏览器是否应当对某一区域的触摸事件应用其默认行为(例如放大或旋转等)。这一属性可以被用在所有元素上,除了:不可替换的行内元素(inline elements)、表格行(table rows)、行组(row groups)、表格列(table columns)、列组(column groups)。

    -

    属性值auto意味着浏览器可以自由应用其默认的触摸行为(对于特定区域),属性值none则会禁止某一区域的浏览器默认触摸行为。 属性值pan-xpan-y表示由某区域开始的触摸操作仅分别产生水平的或垂直的滚动。属性值manipulation表示希望浏览器认为某元素上的触摸行为仅用于滚动或放大。

    +

    属性值auto意味着浏览器可以自由应用其默认的触摸行为(对于特定区域),属性值none则会禁止某一区域的浏览器默认触摸行为。属性值pan-xpan-y表示由某区域开始的触摸操作仅分别产生水平的或垂直的滚动。属性值manipulation表示希望浏览器认为某元素上的触摸行为仅用于滚动或放大。

    在下面的示例中,浏览器对于div元素的默认触摸响应行为将被禁止。

    diff --git a/files/zh-cn/web/api/pointer_lock_api/index.html b/files/zh-cn/web/api/pointer_lock_api/index.html index 7616602c0c9024..49ed1fc3d1b6ae 100644 --- a/files/zh-cn/web/api/pointer_lock_api/index.html +++ b/files/zh-cn/web/api/pointer_lock_api/index.html @@ -95,7 +95,7 @@

    示例

      // -- 这在以后可能会发生改变。   elem.requestFullscreen = elem.requestFullscreen    ||                            elem.mozRequestFullscreen || -                           elem.mozRequestFullScreen || // 较旧的 API 把 ‘S’ 大写 +                           elem.mozRequestFullScreen || // 较旧的 API 把‘S’大写                            elem.webkitRequestFullscreen;   elem.requestFullscreen(); } @@ -162,7 +162,7 @@

    方法/属性 概述

    pointerlockchange 事件

    -

    当指针锁定状态改变时 - 例如,当调用 requestPointerLock, exitPointerLock,用户按下 ESC 键,等等。— pointerlockchange 事件被分发到 document。 这是一个简单事件所以不包含任何的额外数据。

    +

    当指针锁定状态改变时 - 例如,当调用 requestPointerLock, exitPointerLock,用户按下 ESC 键,等等。— pointerlockchange 事件被分发到 document。这是一个简单事件所以不包含任何的额外数据。

    该事件目前在 Firefox 中使用前缀的格式是 mozpointerlockchange ,在 Chrome 中是 webkitpointerlockchange。 
    diff --git a/files/zh-cn/web/api/push_api/index.html b/files/zh-cn/web/api/push_api/index.html index beddeaa714be36..2a6dd4801bc08c 100644 --- a/files/zh-cn/web/api/push_api/index.html +++ b/files/zh-cn/web/api/push_api/index.html @@ -37,11 +37,11 @@

    Push 的概念及用法

     

    -

    Note: 从 Gecko 44 开始,当新的通知触发时,每个应用程序允许的推送消息配额不会增加,而另一个仍然可见,持续三秒钟。 这可以处理收到通知突发的情况,而不是所有通知都会产生可见通知。

    +

    Note: 从 Gecko 44 开始,当新的通知触发时,每个应用程序允许的推送消息配额不会增加,而另一个仍然可见,持续三秒钟。这可以处理收到通知突发的情况,而不是所有通知都会产生可见通知。

    -

    Note:早于 52 的 Chrome 版本要求您在Google Cloud Messaging上设置项目以发送推送消息,并在发送推送通知时使用关联的项目编号和 API 密钥。 它还需要一个应用程序清单,其中包含一些使用此服务的特殊参数。

    +

    Note:早于 52 的 Chrome 版本要求您在Google Cloud Messaging上设置项目以发送推送消息,并在发送推送通知时使用关联的项目编号和 API 密钥。它还需要一个应用程序清单,其中包含一些使用此服务的特殊参数。

     

    diff --git a/files/zh-cn/web/api/range/clonecontents/index.html b/files/zh-cn/web/api/range/clonecontents/index.html index 1c1c98a6893f2a..e72bedc9c1e17b 100644 --- a/files/zh-cn/web/api/range/clonecontents/index.html +++ b/files/zh-cn/web/api/range/clonecontents/index.html @@ -12,7 +12,7 @@

    Range.cloneContents() 返回一个 {{ domxref("DocumentFragment") }},它是 {{ domxref("Range") }} 中所有的 {{ domxref("Node") }} 对象的副本。

    -

    使用" DOM 事件"添加的“事件侦听器”在克隆过程中不会被复制。 HTML 属性事件与“DOM Core cloneNode”方法一样被复制。“HTML id 属性”也将被克隆,这可能导致通过克隆导致无效的文档。

    +

    使用" DOM 事件"添加的“事件侦听器”在克隆过程中不会被复制。HTML 属性事件与“DOM Core cloneNode”方法一样被复制。“HTML id 属性”也将被克隆,这可能导致通过克隆导致无效的文档。

    Partially selected nodes include the parent tags necessary to make the document fragment valid.

    diff --git a/files/zh-cn/web/api/range/collapsed/index.html b/files/zh-cn/web/api/range/collapsed/index.html index 97865540adf328..5278060e4fb1c6 100644 --- a/files/zh-cn/web/api/range/collapsed/index.html +++ b/files/zh-cn/web/api/range/collapsed/index.html @@ -7,7 +7,7 @@

    {{ APIRef("DOM") }}

    -

     Range.collapsed 是只读属性。它返回一个 {{domxref("Boolean")}} 值表示是否起始点和结束点是同一个位置。 如果返回 true 表示{{domxref("Range")}} 的起始位置和结束位置重合,false 表示不重合。

    +

     Range.collapsed 是只读属性。它返回一个 {{domxref("Boolean")}} 值表示是否起始点和结束点是同一个位置。如果返回 true 表示{{domxref("Range")}} 的起始位置和结束位置重合,false 表示不重合。

     一个折叠的{{domxref("Range")}} 是空的,不包含内容,表示 Dom 树中的一个点。collapsed 属性是只读的。可以调用 {{domxref("Range.collapse()")}} 方法来折叠选区。

    diff --git a/files/zh-cn/web/api/range/endoffset/index.html b/files/zh-cn/web/api/range/endoffset/index.html index 3e558fbe065027..a31c8923db50ca 100644 --- a/files/zh-cn/web/api/range/endoffset/index.html +++ b/files/zh-cn/web/api/range/endoffset/index.html @@ -12,7 +12,7 @@

    只读属性 Range.endOffset 返回代表 Range 结束位置在 {{domxref("Range.endContainer")}} 中的偏移值的数字。

    -

    如果 endContainer 的 {{domxref("Node")}} 类型为 {{domxref("Text")}}, {{domxref("Comment")}},或 {{domxref("CDATASection")}},偏移值是 endContainer 节点开头到 {{domxref("Range")}} 末尾的总字符个数。对其他类型的 {{domxref("Node")}} , endOffsetendContainer 开头到 {{domxref("Range")}} 末尾的总 {{domxref("Node")}} 个数。如需修改 endOffset 的值, 使用 {{domxref("Range.setEnd")}} 方法。

    +

    如果 endContainer 的 {{domxref("Node")}} 类型为 {{domxref("Text")}}, {{domxref("Comment")}},或 {{domxref("CDATASection")}},偏移值是 endContainer 节点开头到 {{domxref("Range")}} 末尾的总字符个数。对其他类型的 {{domxref("Node")}} , endOffsetendContainer 开头到 {{domxref("Range")}} 末尾的总 {{domxref("Node")}} 个数。如需修改 endOffset 的值,使用 {{domxref("Range.setEnd")}} 方法。

    语法

    diff --git a/files/zh-cn/web/api/range/extractcontents/index.html b/files/zh-cn/web/api/range/extractcontents/index.html index a8faec06a854be..8e572481cb8b96 100644 --- a/files/zh-cn/web/api/range/extractcontents/index.html +++ b/files/zh-cn/web/api/range/extractcontents/index.html @@ -7,7 +7,7 @@

    Range.extractContents() 方法移动了{{ domxref("Range") }} 中的内容从文档树到{{ domxref("DocumentFragment") }}(文档片段对象)。

    -

    使用 DOM 事件添加的事件侦听器在提取期间不会保留。 HTML 属性事件将按{{domxref("Node.cloneNode()")}}方法的原样保留或复制。 HTML id 属性也会被克隆,如果提取了部分选定的节点并将其附加到文档中,则可能导致无效的文档。

    +

    使用 DOM 事件添加的事件侦听器在提取期间不会保留。HTML 属性事件将按{{domxref("Node.cloneNode()")}}方法的原样保留或复制。HTML id 属性也会被克隆,如果提取了部分选定的节点并将其附加到文档中,则可能导致无效的文档。

    克隆了部分选定的节点,以包括使文档片段有效所需的父标记。

    diff --git a/files/zh-cn/web/api/range/setend/index.html b/files/zh-cn/web/api/range/setend/index.html index b18465d09052c8..ca68a92fb30b30 100644 --- a/files/zh-cn/web/api/range/setend/index.html +++ b/files/zh-cn/web/api/range/setend/index.html @@ -9,7 +9,7 @@

     

    -

    如果结束节点类型是 TextCommentCDATASection之一,那么 endOffset 指的是从结束节点算起字符的偏移量。 对于其他 Node 类型节点,endOffset 是指从结束结点开始算起子节点的偏移量。

    +

    如果结束节点类型是 TextCommentCDATASection之一,那么 endOffset 指的是从结束节点算起字符的偏移量。对于其他 Node 类型节点,endOffset 是指从结束结点开始算起子节点的偏移量。

    如果设置的结束点在起始点之上(在文档中的位置),将会导致选区折叠,起始点和结束点都会被设置为指定的结束位置。

    diff --git a/files/zh-cn/web/api/range/setstart/index.html b/files/zh-cn/web/api/range/setstart/index.html index e4dcde5a94044e..c28ce5b5f36f80 100644 --- a/files/zh-cn/web/api/range/setstart/index.html +++ b/files/zh-cn/web/api/range/setstart/index.html @@ -7,7 +7,7 @@

     Range.setStart() 方法用于设置 {{ domxref("Range") }}的开始位置。

    -

    如果起始节点类型是 TextCommentCDATASection之一,那么 startOffset 指的是从起始节点算起字符的偏移量。 对于其他 Node 类型节点,startOffset 是指从起始结点开始算起子节点的偏移量。

    +

    如果起始节点类型是 TextCommentCDATASection之一,那么 startOffset 指的是从起始节点算起字符的偏移量。对于其他 Node 类型节点,startOffset 是指从起始结点开始算起子节点的偏移量。

     如果设置的起始位点在结束点之下(在文档中的位置),将会导致选区折叠,起始点和结束点都会被设置为指定的起始位置。

    diff --git a/files/zh-cn/web/api/readablestream/readablestream/index.html b/files/zh-cn/web/api/readablestream/readablestream/index.html index f414ac6e33785d..d6c30b2fde2083 100644 --- a/files/zh-cn/web/api/readablestream/readablestream/index.html +++ b/files/zh-cn/web/api/readablestream/readablestream/index.html @@ -22,7 +22,7 @@

    参数

    pull(controller) {{optional_inline}}
    这个方法,也是由开发人员定义的,当流的内部队列不满时,会重复调用这个方法,直到队列补满。如果pull()返回一个 promise,那么它将不会再被调用,直到 promise 完成;如果 promise 失败,该流将会出现错误。传递给此方法的controller参数是{{domxref("ReadableStreamDefaultController")}}或{{domxref("ReadableByteStreamController")}},具体取决于type属性的值。由于更多的块被获取,这个方法可以被开发人员用来控制流。
    cancel(reason) {{optional_inline}}
    -
    如果应用程序表示该流将被取消(例如,调用了{{domxref("ReadableStream.cancel()")}},则将调用此方法,该方法也由开发人员定义。 该方法应该做任何必要的事情来释放对流的访问。 如果这个过程是异步的,它可以返回一个 promise,表明成功或失败。原因参数包含一个{{domxref("DOMString")}},它描述了流被取消的原因。
    +
    如果应用程序表示该流将被取消(例如,调用了{{domxref("ReadableStream.cancel()")}},则将调用此方法,该方法也由开发人员定义。该方法应该做任何必要的事情来释放对流的访问。如果这个过程是异步的,它可以返回一个 promise,表明成功或失败。原因参数包含一个{{domxref("DOMString")}},它描述了流被取消的原因。
    type {{optional_inline}}
    该属性控制正在处理的可读类型的流。如果它包含一个设置为bytes的值,则传递的控制器对象将是一个{{domxref("ReadableByteStreamController")}},能够处理 BYOB(带您自己的缓冲区)/字节流。如果未包含,则传递的控制器将为{{domxref("ReadableStreamDefaultController")}}。
    autoAllocateChunkSize {{optional_inline}}
    diff --git a/files/zh-cn/web/api/readablestreamdefaultcontroller/index.md b/files/zh-cn/web/api/readablestreamdefaultcontroller/index.md index 26535cb34c0dfe..adb6286fb4bb08 100644 --- a/files/zh-cn/web/api/readablestreamdefaultcontroller/index.md +++ b/files/zh-cn/web/api/readablestreamdefaultcontroller/index.md @@ -12,7 +12,7 @@ translation_of: Web/API/ReadableStreamDefaultController --- {{APIRef("Streams")}} -[流操作 API](/zh-CN/docs/Web/API/Streams_API) 中的 **`ReadableStreamDefaultController`** 接口是一个控制器,该控制器允许控制 {{domxref("ReadableStream")}} 的状态和内部队列。 默认控制器用于不是字节流的流。 +[流操作 API](/zh-CN/docs/Web/API/Streams_API) 中的 **`ReadableStreamDefaultController`** 接口是一个控制器,该控制器允许控制 {{domxref("ReadableStream")}} 的状态和内部队列。默认控制器用于不是字节流的流。 ## 构造函数 @@ -59,7 +59,7 @@ const stream = new ReadableStream({ }) }, pull(controller) { - // 在这个例子中不使用pull + // 在这个例子中不使用 pull }, cancel() { // 如果取消了 reader,则会调用该函数, diff --git a/files/zh-cn/web/api/readablestreamdefaultreader/cancel/index.md b/files/zh-cn/web/api/readablestreamdefaultreader/cancel/index.md index 90a8666d6671a3..a3d21a3e45e733 100644 --- a/files/zh-cn/web/api/readablestreamdefaultreader/cancel/index.md +++ b/files/zh-cn/web/api/readablestreamdefaultreader/cancel/index.md @@ -49,7 +49,7 @@ function fetchStream() { let charsReceived = 0; // read() 返回一个 promise,其会在接收到数据时被兑现 reader.read().then(function processText({ done, value }) { - // 结果包含两个属性: + // 结果包含两个属性: // done - 如果为 true,表示流已经返回所有的数据。 // value - 一些数据,done 为 true 时,其值始终为 undefined。 if (done) { diff --git a/files/zh-cn/web/api/readablestreamdefaultreader/read/index.md b/files/zh-cn/web/api/readablestreamdefaultreader/read/index.md index dcf93ea2a05d1c..40737b7e2e43ff 100644 --- a/files/zh-cn/web/api/readablestreamdefaultreader/read/index.md +++ b/files/zh-cn/web/api/readablestreamdefaultreader/read/index.md @@ -26,7 +26,7 @@ read() ### 返回值 -一个 {{jsxref("Promise")}},其兑现/拒绝的结果取决于流的状态。不同的可能性如下: +一个 {{jsxref("Promise")}},其兑现/拒绝的结果取决于流的状态。不同的可能性如下: - 如果有分块可用,则 promise 将使用 `{ value: theChunk, done: false }` 形式的对象来兑现。 - 如果流已经关闭,则 promise 将使用 `{ value: undefined, done: true }` 形式的对象来兑现。 @@ -51,7 +51,7 @@ function fetchStream() { let charsReceived = 0; // read() 返回一个 promise,其会在接收到数据时被兑现 reader.read().then(function processText({ done, value }) { - // 结果包含两个属性: + // 结果包含两个属性: // done - 如果为 true,表示流已经返回所有的数据。 // value - 一些数据,done 为 true 时,其值始终为 undefined。 if (done) { diff --git a/files/zh-cn/web/api/readablestreamdefaultreader/readablestreamdefaultreader/index.md b/files/zh-cn/web/api/readablestreamdefaultreader/readablestreamdefaultreader/index.md index 316f2606a01b16..46b0c6a5ce37d3 100644 --- a/files/zh-cn/web/api/readablestreamdefaultreader/readablestreamdefaultreader/index.md +++ b/files/zh-cn/web/api/readablestreamdefaultreader/readablestreamdefaultreader/index.md @@ -45,7 +45,7 @@ function fetchStream() { let charsReceived = 0; // read() 返回一个 promise,其会在接收到数据时被兑现 reader.read().then(function processText({ done, value }) { - // 结果包含两个属性: + // 结果包含两个属性: // done - 如果为 true,表示流已经返回所有的数据。 // value - 一些数据,done 为 true 时,其值始终为 undefined。 if (done) { diff --git a/files/zh-cn/web/api/request/credentials/index.html b/files/zh-cn/web/api/request/credentials/index.html index e2da1cafb39787..323d0119a6866a 100644 --- a/files/zh-cn/web/api/request/credentials/index.html +++ b/files/zh-cn/web/api/request/credentials/index.html @@ -15,8 +15,8 @@
    • omit: 从不发送 cookies.
    • -
    • same-origin: 只有当 URL 与响应脚本同源才发送 cookies、 HTTP Basic authentication 等验证信息.(浏览器默认值,在旧版本浏览器,例如 safari 11 依旧是 omit,safari 12 已更改)
    • -
    • include: 不论是不是跨域的请求,总是发送请求资源域在本地的 cookies、 HTTP Basic authentication 等验证信息。
    • +
    • same-origin: 只有当 URL 与响应脚本同源才发送 cookies、HTTP Basic authentication 等验证信息.(浏览器默认值,在旧版本浏览器,例如 safari 11 依旧是 omit,safari 12 已更改)
    • +
    • include: 不论是不是跨域的请求,总是发送请求资源域在本地的 cookies、HTTP Basic authentication 等验证信息。

    语法

    @@ -29,7 +29,7 @@

    Value

    举例

    -

    在以下代码中,我们使用{{domxref("Request.Request()")}}创建了一个新的 request(为了一个与脚本在同一目录下的图片文件), 接着将 request credentials 存入一个变量:

    +

    在以下代码中,我们使用{{domxref("Request.Request()")}}创建了一个新的 request(为了一个与脚本在同一目录下的图片文件),接着将 request credentials 存入一个变量:

    var myRequest = new Request('flowers.jpg');
     var myCred = myRequest.credentials; // returns "same-origin" by default
    diff --git a/files/zh-cn/web/api/resize_observer_api/index.html b/files/zh-cn/web/api/resize_observer_api/index.html index 968f7d3ad451a3..6ab3f75325f3c8 100644 --- a/files/zh-cn/web/api/resize_observer_api/index.html +++ b/files/zh-cn/web/api/resize_observer_api/index.html @@ -17,9 +17,9 @@

    概念和使用

    这样的解决方案仅适用于有限的场景,对性能不利(不断调用上述方法会导致性能严重下降),并且在不更改浏览器窗口大小的情况下通常不起作用。

    -

    Resize Observer API 提供了一种解决此类问题的解决方案,此外,它还使您能够轻松观察和响应元素内容或边框的大小变化,并以高效的方式做出响应。 它为 Web 平台中经常讨论的缺少element queries 提供了 JavaScript 解决方案。

    +

    Resize Observer API 提供了一种解决此类问题的解决方案,此外,它还使您能够轻松观察和响应元素内容或边框的大小变化,并以高效的方式做出响应。它为 Web 平台中经常讨论的缺少element queries 提供了 JavaScript 解决方案。

    -

    用法很简单,并且与其他观察者(例如 Performance Observer 或者 Intersection Observer )— 几乎相同,您可以使用 ResizeObserver()构造函数创建一个新的{{domxref("ResizeObserver")}} ,然后使用 {{domxref("ResizeObserver.observe()")}}使其寻找特定元素大小的更改。 每次更改大小时,构造函数中设置的回调函数便会运行,从而提供对新维度的访问权限,并允许您根据需要执行任何操作。

    +

    用法很简单,并且与其他观察者(例如 Performance Observer 或者 Intersection Observer )— 几乎相同,您可以使用 ResizeObserver()构造函数创建一个新的{{domxref("ResizeObserver")}} ,然后使用 {{domxref("ResizeObserver.observe()")}}使其寻找特定元素大小的更改。每次更改大小时,构造函数中设置的回调函数便会运行,从而提供对新维度的访问权限,并允许您根据需要执行任何操作。

    接口

    @@ -35,8 +35,8 @@

    例子

    您可以在我们的 GitHub 存储库中找到几个简单的示例:

      -
    • resize-observer-border-radius.html (源码): 一个带有绿色框的简单示例,其大小为视口大小的百分比。更改视口大小时,框的圆角将根据框的大小成比例地变化。 我们可以通过 {{cssxref("border-radius")}} 来百分比来实现,但这很快会导致椭圆形的角看起来很丑陋,而上述解决方案为您提供了随盒子大小缩放的漂亮的角形正方形。
    • -
    • resize-observer-text.html (源码): 这里我们使用 resize observer 来改变 {{cssxref("font-size")}} ,标题和段落的值随着滑块值的改变而改变,导致包含的<div>改变宽度。 这表明您可以响应元素大小的更改,即使它们与视口无关。
    • +
    • resize-observer-border-radius.html (源码): 一个带有绿色框的简单示例,其大小为视口大小的百分比。更改视口大小时,框的圆角将根据框的大小成比例地变化。我们可以通过 {{cssxref("border-radius")}} 来百分比来实现,但这很快会导致椭圆形的角看起来很丑陋,而上述解决方案为您提供了随盒子大小缩放的漂亮的角形正方形。
    • +
    • resize-observer-text.html (源码): 这里我们使用 resize observer 来改变 {{cssxref("font-size")}} ,标题和段落的值随着滑块值的改变而改变,导致包含的<div>改变宽度。这表明您可以响应元素大小的更改,即使它们与视口无关。

    代码通常将遵循这种模式 (取自 resize-observer-border-radius.html):

    diff --git a/files/zh-cn/web/api/resource_timing_api/index.html b/files/zh-cn/web/api/resource_timing_api/index.html index 66923fb9045aa7..9b4c7eb9e4fef1 100644 --- a/files/zh-cn/web/api/resource_timing_api/index.html +++ b/files/zh-cn/web/api/resource_timing_api/index.html @@ -23,7 +23,7 @@

    高分辨率时间戳

    资源载入时间戳

    -

    应用程序可以获得用于加载资源的各个阶段的时间戳。处理模型中的第一个属性是 {{domxref("PerformanceEntry.startTime","startTime")}} , 它在资源加载过程开始之前立即返回时间. {{domxref("PerformanceResourceTiming.fetchStart","fetchStart")}} 跟踪和重定向处理 (如果适用),并在 DNS 查找之前进行。下个阶段是{{domxref('PerformanceResourceTiming.connectStart','connectStart')}} 和 {{domxref('PerformanceResourceTiming.connectEnd','connectEnd')}} 分别是开始连接到服务器和连接建立完成的时间戳。最后三个按顺序分别是: {{domxref('PerformanceResourceTiming.requestStart','requestStart')}} - 在浏览器开始向服务器请求资源时; {{domxref('PerformanceResourceTiming.responseStart','responseStart')}} - 资源请求首包返回时; and {{domxref('PerformanceResourceTiming.responseEnd','responseEnd')}} - 资源全部接收完成时。如果资源是通过安全连接加载的 {{domxref('PerformanceResourceTiming.secureConnectionStart','secureConnectionStart')}} 的值将会在 connectStart 和 connectEnd 之间。

    +

    应用程序可以获得用于加载资源的各个阶段的时间戳。处理模型中的第一个属性是 {{domxref("PerformanceEntry.startTime","startTime")}} , 它在资源加载过程开始之前立即返回时间。{{domxref("PerformanceResourceTiming.fetchStart","fetchStart")}} 跟踪和重定向处理 (如果适用),并在 DNS 查找之前进行。下个阶段是{{domxref('PerformanceResourceTiming.connectStart','connectStart')}} 和 {{domxref('PerformanceResourceTiming.connectEnd','connectEnd')}} 分别是开始连接到服务器和连接建立完成的时间戳。最后三个按顺序分别是:{{domxref('PerformanceResourceTiming.requestStart','requestStart')}} - 在浏览器开始向服务器请求资源时; {{domxref('PerformanceResourceTiming.responseStart','responseStart')}} - 资源请求首包返回时; and {{domxref('PerformanceResourceTiming.responseEnd','responseEnd')}} - 资源全部接收完成时。如果资源是通过安全连接加载的 {{domxref('PerformanceResourceTiming.secureConnectionStart','secureConnectionStart')}} 的值将会在 connectStart 和 connectEnd 之间。

    当 {{Glossary("CORS")}} 生效时,除非服务器的访问策略允许共享这些值,否则这些值中的许多将返回为零。这需要提供资源的服务器发送 Timing-Allow-Origin HTTP 响应头并且指定 origin[s] 来源才能允许获取这些被限制的时间戳 .

    diff --git a/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html b/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html index 00afb21416708b..34ded8e5aa1fcc 100644 --- a/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html +++ b/files/zh-cn/web/api/resource_timing_api/using_the_resource_timing_api/index.html @@ -24,7 +24,7 @@

    资源加载的各个阶段

    计算资源加载各阶段的时间

    -

    接下来的这段例子展示了用 Resource timing 属性去计算以下阶段的耗时:重定向 ({{domxref("PerformanceResourceTiming.redirectStart","redirectStart")}} 和 {{domxref("PerformanceResourceTiming.redirectEnd","redirectEnd")}} ),DNS 查询 ({{domxref("PerformanceResourceTiming.domainLookupStart","domainLookupStart")}} 和 {{domxref("PerformanceResourceTiming.domainLookupEnd","domainLookupEnd")}}),TCP 握手 ({{domxref('PerformanceResourceTiming.connectStart','connectStart')}} 和 {{domxref('PerformanceResourceTiming.connectEnd','connectEnd')}}), 响应 ({{domxref('PerformanceResourceTiming.responseStart','responseStart')}} 和 {{domxref('PerformanceResourceTiming.responseEnd','responseEnd')}})。 这段例子也计算了从开始获取资源和请求开始(分别为{{domxref("PerformanceResourceTiming.fetchStart","fetchStart")}} and {{domxref("PerformanceResourceTiming.requestStart","requestStart")}})到响应结束 ({{domxref('PerformanceResourceTiming.responseEnd','responseEnd')}}) 的时间。

    +

    接下来的这段例子展示了用 Resource timing 属性去计算以下阶段的耗时:重定向 ({{domxref("PerformanceResourceTiming.redirectStart","redirectStart")}} 和 {{domxref("PerformanceResourceTiming.redirectEnd","redirectEnd")}} ),DNS 查询 ({{domxref("PerformanceResourceTiming.domainLookupStart","domainLookupStart")}} 和 {{domxref("PerformanceResourceTiming.domainLookupEnd","domainLookupEnd")}}),TCP 握手 ({{domxref('PerformanceResourceTiming.connectStart','connectStart')}} 和 {{domxref('PerformanceResourceTiming.connectEnd','connectEnd')}}),响应 ({{domxref('PerformanceResourceTiming.responseStart','responseStart')}} 和 {{domxref('PerformanceResourceTiming.responseEnd','responseEnd')}})。 这段例子也计算了从开始获取资源和请求开始(分别为{{domxref("PerformanceResourceTiming.fetchStart","fetchStart")}} and {{domxref("PerformanceResourceTiming.requestStart","requestStart")}})到响应结束 ({{domxref('PerformanceResourceTiming.responseEnd','responseEnd')}}) 的时间。

    function calculate_load_times() {
       // Check performance support
    diff --git a/files/zh-cn/web/api/response/blob/index.html b/files/zh-cn/web/api/response/blob/index.html
    index 9948bb613a914c..aca923f5e09c68 100644
    --- a/files/zh-cn/web/api/response/blob/index.html
    +++ b/files/zh-cn/web/api/response/blob/index.html
    @@ -31,7 +31,7 @@ 

    返回值

    例子

    -

    在我们 fetch request example (run fetch request live) 中,我们使用Request.Request构造方法创建了一个新的 request 对象,然后使用它来获取一个 JPG 文件。当 fetch 成功的时候,我们使用 blob() 从 response 中读取一个Blob对象,并使用URL.createObjectURL 将它放入一个 object URL ,然后把 URL 设置为img元素的 src 属性以显示这张图片。

    +

    在我们 fetch request example (run fetch request live) 中,我们使用Request.Request构造方法创建了一个新的 request 对象,然后使用它来获取一个 JPG 文件。当 fetch 成功的时候,我们使用 blob() 从 response 中读取一个Blob对象,并使用URL.createObjectURL 将它放入一个 object URL,然后把 URL 设置为img元素的 src 属性以显示这张图片。

     

    diff --git a/files/zh-cn/web/api/response/clone/index.html b/files/zh-cn/web/api/response/clone/index.html index 6700e2693347e7..ceb7a39548e2f5 100644 --- a/files/zh-cn/web/api/response/clone/index.html +++ b/files/zh-cn/web/api/response/clone/index.html @@ -16,7 +16,7 @@

    {{domxref("Response")}} 接口的 clone() 方法创建了一个响应对象的克隆,这个对象在所有方面都是相同的,但是存储在一个不同的变量中。

    -

    如果已经使用了响应 {{domxref("Body")}},clone() 会抛出{{jsxref("TypeError")}}。 实际上,clone() 存在的主要原因是允许多次使用{{domxref("Body")}}对象 (当它们是一次性使用的时候)。

    +

    如果已经使用了响应 {{domxref("Body")}},clone() 会抛出{{jsxref("TypeError")}}。实际上,clone() 存在的主要原因是允许多次使用{{domxref("Body")}}对象 (当它们是一次性使用的时候)。

    语法

    @@ -32,7 +32,7 @@

    Value

    示例

    -

    在我们的 Fetch Response 克隆示例 (请参阅 Fetch Response clone live) 我们使用{{domxref("Request.Request","Request()")}} 构造函数创建一个新的 {{domxref("Request")}} 来传递一个 JPG 路径。 然后我们使用 {{domxref("GlobalFetch.fetch","fetch()")}} 获取这个请求。 当 fetch resolve 时,我们克隆它,使用两个{{domxref("Body.blob")}}调用从两个响应中提取 blob,使用{{domxref("URL.createObjectURL")}} 从 blob 创建对象 URL,并将它们显示在两个单独的{{htmlelement("img")}}元素中。

    +

    在我们的 Fetch Response 克隆示例 (请参阅 Fetch Response clone live) 我们使用{{domxref("Request.Request","Request()")}} 构造函数创建一个新的 {{domxref("Request")}} 来传递一个 JPG 路径。然后我们使用 {{domxref("GlobalFetch.fetch","fetch()")}} 获取这个请求。当 fetch resolve 时,我们克隆它,使用两个{{domxref("Body.blob")}}调用从两个响应中提取 blob,使用{{domxref("URL.createObjectURL")}} 从 blob 创建对象 URL,并将它们显示在两个单独的{{htmlelement("img")}}元素中。

    var image1 = document.querySelector('.img1');
     var image2 = document.querySelector('.img2');
    diff --git a/files/zh-cn/web/api/response/error/index.html b/files/zh-cn/web/api/response/error/index.html
    index de69e0479e58b5..25e665b6e88cdd 100644
    --- a/files/zh-cn/web/api/response/error/index.html
    +++ b/files/zh-cn/web/api/response/error/index.html
    @@ -8,7 +8,7 @@
     

    {{domxref("Response")}} 接口的error()方法返回一个包含网络错误相关信息的新Response对象

    -

    Note: 这主要与 Service Workers 有关; 如果您愿意,可以使用 error 方法返回错误。 错误响应的{{domxref("Response.type","type")}} 被设置为 error。

    +

    Note: 这主要与 Service Workers 有关;如果您愿意,可以使用 error 方法返回错误。错误响应的{{domxref("Response.type","type")}} 被设置为 error。

    diff --git a/files/zh-cn/web/api/response/text/index.html b/files/zh-cn/web/api/response/text/index.html index e6edb9fce519f6..2e1de0b50d798f 100644 --- a/files/zh-cn/web/api/response/text/index.html +++ b/files/zh-cn/web/api/response/text/index.html @@ -31,9 +31,9 @@

    返回值

    示例

    -

    在我们 fetch text example (运行 fetch text live) 的案例中, 我们有一个 {{htmlelement("article")}} 元素和三个链接(储存在 myLinks 数组中),首先,遍历 myLinks 数组,并且给数组中的所有元素添加 onclick 事件监听器,当按钮被点击的时候,链接的 data-page 标识作为会参数传入 getData() 中。

    +

    在我们 fetch text example (运行 fetch text live) 的案例中,我们有一个 {{htmlelement("article")}} 元素和三个链接(储存在 myLinks 数组中),首先,遍历 myLinks 数组,并且给数组中的所有元素添加 onclick 事件监听器,当按钮被点击的时候,链接的 data-page 标识作为会参数传入 getData() 中。

    -

    当进入 getData() 函数, 我们使用 {{domxref("Request.Request","Request()")}} 构造函数创建了一个请求(Request)对象,然后,使用它获取指定的.txt的文件, 当 fetch 函数执行成功, 我们使用 text() 函数来返回一个{{jsxref("USVString")}} (text) 对象,将它设置到 {{htmlelement("article")}} 对象的{{domxref("Element.innerHTML","innerHTML")}}(元素文本)中。

    +

    当进入 getData() 函数,我们使用 {{domxref("Request.Request","Request()")}} 构造函数创建了一个请求(Request)对象,然后,使用它获取指定的.txt的文件,当 fetch 函数执行成功,我们使用 text() 函数来返回一个{{jsxref("USVString")}} (text) 对象,将它设置到 {{htmlelement("article")}} 对象的{{domxref("Element.innerHTML","innerHTML")}}(元素文本)中。

    const myArticle = document.querySelector('article');
     const myLinks   = document.querySelectorAll('ul a');
    diff --git a/files/zh-cn/web/api/response/type/index.html b/files/zh-cn/web/api/response/type/index.html
    index 48e95b404811c6..c7821b9fa1cd23 100644
    --- a/files/zh-cn/web/api/response/type/index.html
    +++ b/files/zh-cn/web/api/response/type/index.html
    @@ -8,10 +8,10 @@
     

    type 是{{domxref("Response")}} 接口包含的一种响应类型,是只读属性。它可以是以下某一种值:

      -
    • basic: 标准值,同源响应,带有所有的头部信息除了“Set-Cookie” 和 “Set-Cookie2″.
    • +
    • basic: 标准值,同源响应,带有所有的头部信息除了“Set-Cookie”和“Set-Cookie2″.
    • cors: Response 接收到一个有效的跨域请求。部分 headers 和 body可以被访问。
    • error: 网络错误。没有有用的描述错误的信息。响应的状态为 0,header 为空且不可变。从 Response.error()中获得的响应的类型。
    • -
    • opaque: 响应 “no-cors” 的跨域请求。严重受限.
    • +
    • opaque: 响应 “no-cors”的跨域请求。严重受限.
    diff --git a/files/zh-cn/web/api/rtcpeerconnection/cantrickleicecandidates/index.html b/files/zh-cn/web/api/rtcpeerconnection/cantrickleicecandidates/index.html index 87039c59d6959b..afadfbb87c8bee 100644 --- a/files/zh-cn/web/api/rtcpeerconnection/cantrickleicecandidates/index.html +++ b/files/zh-cn/web/api/rtcpeerconnection/cantrickleicecandidates/index.html @@ -9,7 +9,7 @@
    ICE trickling是在初始发送或回应已经发送给其他设备之后继续发送候选的过程。

    -仅在调用{{domxref("RTCPeerConnection.setRemoteDescription()")}}之后才设置此属性。 理想情况下,您的信令协议提供了一种检测滴流支持的方法,因此您无需依赖此属性。 WebRTC 浏览器将始终支持 trickle ICE。 如果不支持滴流,或者您无法辨别,则可以检查此属性的伪值,然后等待{{domxref("RTCPeerConnection.iceGatheringState","iceGatheringState")}}的值更改在创建和发送之前“完成”。
    +仅在调用{{domxref("RTCPeerConnection.setRemoteDescription()")}}之后才设置此属性。理想情况下,您的信令协议提供了一种检测滴流支持的方法,因此您无需依赖此属性。WebRTC 浏览器将始终支持 trickle ICE。如果不支持滴流,或者您无法辨别,则可以检查此属性的伪值,然后等待{{domxref("RTCPeerConnection.iceGatheringState","iceGatheringState")}}的值更改在创建和发送之前“完成”。
    这样,发送信息包含所有候选。
    @@ -21,7 +21,7 @@

    语法

    -

    {{jsxref("Boolean")}} 如果远程对等体可以接受滴入的 ICE candidate,则为 true;如果不能,则为 false。 如果尚未建立远程对等方,则此值为 null。

    +

    {{jsxref("Boolean")}} 如果远程对等体可以接受滴入的 ICE candidate,则为 true;如果不能,则为 false。如果尚未建立远程对等方,则此值为 null。

    Note: 一旦本地对等方调用{{domxref("RTCPeerConnection.setRemoteDescription()")}},就确定该属性的值; ICE 代理使用所提供的描述来确定远程对等体是否支持滴入的 ICE candidates。

    diff --git a/files/zh-cn/web/api/rtcpeerconnection/createoffer/index.html b/files/zh-cn/web/api/rtcpeerconnection/createoffer/index.html index 6b69df5853d153..fe98d1dcf241a4 100644 --- a/files/zh-cn/web/api/rtcpeerconnection/createoffer/index.html +++ b/files/zh-cn/web/api/rtcpeerconnection/createoffer/index.html @@ -39,10 +39,10 @@

    RTCOfferOptions 词典

    iceRestart {{optional_inline}}
    -
    要在活动连接上重新启动 ICE,请将其设置为true。 这将导致返回的 offer 与已经存在的凭证不同。 如果您应用返回的 offer,则 ICE 将重新启动。 指定false以保留相同的凭据,因此不重新启动 ICE。 默认值为false
    +
    要在活动连接上重新启动 ICE,请将其设置为true。这将导致返回的 offer 与已经存在的凭证不同。如果您应用返回的 offer,则 ICE 将重新启动。指定false以保留相同的凭据,因此不重新启动 ICE。默认值为false
    offerToReceiveAudio {{optional_inline}} (Legacy)
    -

    传统的布尔选项,用于控制是否向远程对等方提供尝试发送音频的机会。 如果该值为false,即使本地端将发送音频数据,也不会提供远程端点发送音频数据。 如果此值为true,即使本地端不会发送音频数据,也将向远程端点发送音频数据。 默认行为是仅在本地发送音频时才提供接收音频,否则不提供。

    +

    传统的布尔选项,用于控制是否向远程对等方提供尝试发送音频的机会。如果该值为false,即使本地端将发送音频数据,也不会提供远程端点发送音频数据。如果此值为true,即使本地端不会发送音频数据,也将向远程端点发送音频数据。默认行为是仅在本地发送音频时才提供接收音频,否则不提供。

    为了在现代实现中模拟此行为,该成员的值为 false 将设置所有现有音频收发器的方向以排除接收(即,设置为“仅发送”或“无效”)。
    在现代实现中,此成员的值为 true 的存在将确保至少有一个收发器集可以接收尚未停止的音频,如果没有,则将创建一个。
    @@ -50,14 +50,14 @@

    RTCOfferOptions 词典

    备注: 您不应该使用此旧版属性。取而代之,用 {{domxref("RTCRtpTransceiver")}} 去控制是否接受传入的音频。
    offerToReceiveVideo {{optional_inline}} (Legacy)
    -
    传统的布尔选项,用于控制是否向远程对等方提供尝试发送视频的机会。 如果此值为false,即使本地端将发送视频数据,也不会提供远程端点发送视频数据。 如果此值为true,即使本地端将不发送视频数据,也将向远程端点发送视频数据。 默认行为是仅在本地端正在发送视频时才提供接收视频,否则不提供。
    +
    传统的布尔选项,用于控制是否向远程对等方提供尝试发送视频的机会。如果此值为false,即使本地端将发送视频数据,也不会提供远程端点发送视频数据。如果此值为true,即使本地端将不发送视频数据,也将向远程端点发送视频数据。默认行为是仅在本地端正在发送视频时才提供接收视频,否则不提供。
    为了在现代实现中模拟这种行为,该成员的值为false将设置所有现有视频收发器的方向以排除接收(即设置为“仅发送”或“无效”)。
    在现代实现中,该成员的值为 true 的存在将确保至少有一个收发器集可以接收尚未停止的视频,如果没有,则将创建一个。
    备注: 您不应该使用此旧版属性。取而代之,用 {{domxref("RTCRtpTransceiver")}} 去控制是否接受传入的视频。
    voiceActivityDetection {{optional_inline}}
    -
    一些编解码器和硬件能够通过监视是否出现“静音”(或相对较低的声音水平)来检测音频何时开始和结束。 通过仅在实际有广播内容时发送音频数据,从而减少了用于音频的网络带宽。 但是,在某些情况下,这是不需要的。 例如,在音乐或其他非语音传输的情况下,这可能会导致重要的低音量声音丢失。 而且,紧急呼叫在安静时切勿切断音频。 此选项默认为true(启用语音活动检测)。
    +
    一些编解码器和硬件能够通过监视是否出现“静音”(或相对较低的声音水平)来检测音频何时开始和结束。通过仅在实际有广播内容时发送音频数据,从而减少了用于音频的网络带宽。但是,在某些情况下,这是不需要的。例如,在音乐或其他非语音传输的情况下,这可能会导致重要的低音量声音丢失。而且,紧急呼叫在安静时切勿切断音频。此选项默认为true(启用语音活动检测)。
    @@ -67,7 +67,7 @@

    不推荐使用的参数

    -

    在较早的代码和文档中,您可能会看到此函数的基于回调的版本。 不推荐使用并强烈建议不要使用它。 您应该更新任何现有代码,以使用基于 {{jsxref("Promise")}}的createOffer()版本。 下面介绍了这种形式的createOffer()的参数,以帮助更新现有代码。

    +

    在较早的代码和文档中,您可能会看到此函数的基于回调的版本。不推荐使用并强烈建议不要使用它。您应该更新任何现有代码,以使用基于 {{jsxref("Promise")}}的createOffer()版本。下面介绍了这种形式的createOffer()的参数,以帮助更新现有代码。

    @@ -82,17 +82,17 @@

    不推荐使用的参数

    返回值

    -

    {{jsxref("Promise")}}的履行处理程序将接收符合{{domxref("RTCSessionDescriptionInit")}}字典的对象,该字典包含描述所生成 offer 的 SDP。 收到的 offer 应通过信令服务器传递到。

    +

    {{jsxref("Promise")}}的履行处理程序将接收符合{{domxref("RTCSessionDescriptionInit")}}字典的对象,该字典包含描述所生成 offer 的 SDP。收到的 offer 应通过信令服务器传递到。

    异常

    -

    通过拒绝返回的承诺返回这些异常。 您的拒绝处理程序应检查收到的异常,以确定发生了哪些异常。

    +

    通过拒绝返回的承诺返回这些异常。您的拒绝处理程序应检查收到的异常,以确定发生了哪些异常。

    InvalidStateError
    RTCPeerConnection 被关闭。
    NotReadableError
    -
    没有提供用于保护连接的证书或一组证书,并且createOffer()无法创建新证书。 由于需要保护所有 WebRTC 连接,因此会导致错误。
    +
    没有提供用于保护连接的证书或一组证书,并且createOffer()无法创建新证书。由于需要保护所有 WebRTC 连接,因此会导致错误。
    OperationError
    由于某些原因,检查系统状态以确定资源可用性以生成报价失败。
    @@ -102,7 +102,7 @@

    举例

    在这里,我们看到了{{event("negotiationneeded")}}事件的处理程序,该处理程序创建了要约,并通过信令通道将其发送到远程系统。

    -

    备注: 请记住,这是信令过程的一部分,传输层的实现细节完全由您决定。 在这种情况下,WebSocket连接用于向其他端点发送带有值为“ video-offer”的类型字段的{{Glossary("JSON")}}消息。 传递给sendToServer()函数的对象的内容,以及承诺履行处理程序中的所有其他内容,完全取决于您的设计。

    +

    备注: 请记住,这是信令过程的一部分,传输层的实现细节完全由您决定。在这种情况下,WebSocket连接用于向其他端点发送带有值为“video-offer”的类型字段的{{Glossary("JSON")}}消息。传递给sendToServer()函数的对象的内容,以及承诺履行处理程序中的所有其他内容,完全取决于您的设计。

      myPeerConnection.createOffer().then(function(offer) {
    @@ -120,11 +120,11 @@ 

    举例

    // An error occurred, so handle the failure to connect });
    -

    在此代码中,创建了 offer,一旦成功,就将{{domxref("RTCPeerConnection")}}的本地端配置为通过传递要约进行匹配(使用符合{{domxref("RTCSessionDescriptionInit")}})放入{{domxref("RTCPeerConnection.setLocalDescription", "setLocalDescription()")}}。 完成后,要约将通过信令通道发送到远程系统。 在这种情况下,使用名为sendToServer()的自定义函数。 信令服务器的实现独立于 WebRTC 规范,因此只要主叫方和潜在接收方都使用相同的 offer,如何发送 offer 都无关紧要。

    +

    在此代码中,创建了 offer,一旦成功,就将{{domxref("RTCPeerConnection")}}的本地端配置为通过传递要约进行匹配(使用符合{{domxref("RTCSessionDescriptionInit")}})放入{{domxref("RTCPeerConnection.setLocalDescription", "setLocalDescription()")}}。完成后,要约将通过信令通道发送到远程系统。在这种情况下,使用名为sendToServer()的自定义函数。信令服务器的实现独立于 WebRTC 规范,因此只要主叫方和潜在接收方都使用相同的 offer,如何发送 offer 都无关紧要。

    用 {{jsxref("Promise.catch()")}} 来捕获和处理错误。

    -

    请参阅 Signaling and video calling,以获取此摘录的完整示例。 这将帮助您了解此处的信令代码如何工作。

    +

    请参阅 Signaling and video calling,以获取此摘录的完整示例。这将帮助您了解此处的信令代码如何工作。

    技术指标

    diff --git a/files/zh-cn/web/api/rtcpeerconnection/currentlocaldescription/index.html b/files/zh-cn/web/api/rtcpeerconnection/currentlocaldescription/index.html index 5c91def9e7ebd2..9692d4fa226e6e 100644 --- a/files/zh-cn/web/api/rtcpeerconnection/currentlocaldescription/index.html +++ b/files/zh-cn/web/api/rtcpeerconnection/currentlocaldescription/index.html @@ -11,7 +11,7 @@

    只读属性 RTCPeerConnection.currentLocalDescription 返回一个 {{domxref("RTCSessionDescription")}} 对象,该对象描述了 自上次 {{domxref("RTCPeerConnection")}} 完成协商与连接到远程端后,最近一次成功协商的连接的本地端。原文(describing the local end of the connection as it was most recently successfully negotiated since the last time the RTCPeerConnection finished negotiating and connecting to a remote peer)。也包括自 RTCSessionDescription 所代表的 offer 或 anwser 首次实例化以来,ICE 代理可能已经生成的任何 ICE 候选人的列表。

    -

    若想改变 currentLocalDescription ,则调用 {{domxref("RTCPeerConnection.setLocalDescription()")}} 。这将会触发引发该值被设置的一系列事件。 如果希望详细了解策略与机制,查阅 {{SectionOnPage("/en-US/docs/Web/API/WebRTC_API/Connectivity", "Pending and current descriptions")}}。

    +

    若想改变 currentLocalDescription ,则调用 {{domxref("RTCPeerConnection.setLocalDescription()")}} 。这将会触发引发该值被设置的一系列事件。如果希望详细了解策略与机制,查阅 {{SectionOnPage("/en-US/docs/Web/API/WebRTC_API/Connectivity", "Pending and current descriptions")}}。

    与 {{domxref("RTCPeerConnection.localDescription")}} 不同, 这个值代表了当前连接的本地端的事实当前状态; localDescription 也许指明了一个当前正在切换中的连接的 description。

    diff --git a/files/zh-cn/web/api/rtcpeerconnection/index.html b/files/zh-cn/web/api/rtcpeerconnection/index.html index d4a4c54de10b01..edb2bfc32be6c8 100644 --- a/files/zh-cn/web/api/rtcpeerconnection/index.html +++ b/files/zh-cn/web/api/rtcpeerconnection/index.html @@ -43,11 +43,11 @@

    属性 

    {{domxref("RTCPeerConnection.connectionState")}} {{ReadOnlyInline}}
    只读 connectionState 属性通过返回由枚举 RTCPeerConnectionState 指定的字符串值之一来指示对等连接的当前状态。
    {{domxref("RTCPeerConnection.currentLocalDescription")}} {{ReadOnlyInline}}
    -
    只读属性 RTCPeerConnection.currentLocalDescription 返回一个描述连接本地端的 RTCSessionDescription 对象,因为自上次 RTCPeerConnection 完成协商并连接到远程对等体之后,它最近成功协商。 还包括可能已经由 ICE 代理生成的任何 ICE 候选者的列表,因为首先被描述的描述所表示的要约或答案。
    +
    只读属性 RTCPeerConnection.currentLocalDescription 返回一个描述连接本地端的 RTCSessionDescription 对象,因为自上次 RTCPeerConnection 完成协商并连接到远程对等体之后,它最近成功协商。还包括可能已经由 ICE 代理生成的任何 ICE 候选者的列表,因为首先被描述的描述所表示的要约或答案。
    {{domxref("RTCPeerConnection.currentRemoteDescription")}} {{ReadOnlyInline}}
    -
    只读属性 RTCPeerConnection.currentRemoteDescription 返回一个 RTCSessionDescription 对象,描述连接的远程端,因为最近一次 RTCPeerConnection 完成协商并连接到远程对等体后最近成功协商。 还包括可能已经由 ICE 代理生成的任何 ICE 候选者的列表,因为首先被描述的描述所表示的要约或答案。
    +
    只读属性 RTCPeerConnection.currentRemoteDescription 返回一个 RTCSessionDescription 对象,描述连接的远程端,因为最近一次 RTCPeerConnection 完成协商并连接到远程对等体后最近成功协商。还包括可能已经由 ICE 代理生成的任何 ICE 候选者的列表,因为首先被描述的描述所表示的要约或答案。
    {{domxref("RTCPeerConnection.defaultIceServers")}} {{ReadOnlyInline}}
    -
    只读属性 RTCPeerConnection.defaultIceServers 根据 RTCIceServer 字典返回一个对象数组,该字典指示如果在 RTCConfiguration 中没有提供给 RTCPeerConnection 的默认情况下,浏览器将使用 ICE 服务器。 然而,浏览器根本不需要提供任何默认的 ICE 服务器。
    +
    只读属性 RTCPeerConnection.defaultIceServers 根据 RTCIceServer 字典返回一个对象数组,该字典指示如果在 RTCConfiguration 中没有提供给 RTCPeerConnection 的默认情况下,浏览器将使用 ICE 服务器。然而,浏览器根本不需要提供任何默认的 ICE 服务器。
    {{domxref("RTCPeerConnection.iceConnectionState")}} {{ReadOnlyInline}}
    只读属性 RTCPeerConnection.iceConnectionState 返回与 RTCPeerConnection 关联的 ICE 代理的状态类型为 RTCIceConnectionState 的枚举。
    {{domxref("RTCPeerConnection.iceGatheringState")}} {{ReadOnlyInline}}
    @@ -206,7 +206,7 @@

    事件处理器

    {{domxref("RTCPeerConnection.onicecandidate")}}
    是收到 {{event("icecandidate")}} 事件时调用的事件处理器.。当一个 {{domxref("RTCICECandidate")}} 对象被添加时,这个事件被触发。
    {{domxref("RTCPeerConnection.oniceconnectionstatechange")}}
    -
    是收到{{event("iceconnectionstatechange")}}事件时调用的事件处理器 。 当{{domxref("RTCPeerConnection.iceConnectionState", "iceConnectionState")}} 改变时,这个事件被触发。
    +
    是收到{{event("iceconnectionstatechange")}}事件时调用的事件处理器。当{{domxref("RTCPeerConnection.iceConnectionState", "iceConnectionState")}} 改变时,这个事件被触发。
    {{domxref("RTCPeerConnection.onidentityresult")}}
    是收到 {{event("identityresult")}}事件时调用的事件处理器。 当通过{{domxref("RTCPeerConnection.getIdentityAssertion()", "getIdentityAssertion()")}}生成身份断言,或在生成一个 answer 或一个 offer 的过程中,这个事件被触发。
    {{domxref("RTCPeerConnection.onidpassertionerror")}}
    diff --git a/files/zh-cn/web/api/rtcpeerconnection/peeridentity/index.html b/files/zh-cn/web/api/rtcpeerconnection/peeridentity/index.html index f45ecf3152c0fb..6436e0944c905c 100644 --- a/files/zh-cn/web/api/rtcpeerconnection/peeridentity/index.html +++ b/files/zh-cn/web/api/rtcpeerconnection/peeridentity/index.html @@ -18,7 +18,7 @@

    Value

    当验证远程的身份 ID 出错时, promise 将返回拒绝。如果目标节点身份不存在,peerIdentity 将被设为 一个 promise 对象,并重启验证过程(一个断言), 直到成功或者不再想继续。

    -

    注意: {{domxref("RTCPeerConnection.setRemoteDescription", "setRemoteDescription()")}} 返回的 promise 将不会成功返回,除非目标节点身份信息可用。 如不可用,则setRemoteDescription() 将被拒绝。若无目标节点 ID,就不不需要等setRemoteDescription() 这个返回验证成功了。

    +

    注意: {{domxref("RTCPeerConnection.setRemoteDescription", "setRemoteDescription()")}} 返回的 promise 将不会成功返回,除非目标节点身份信息可用。如不可用,则setRemoteDescription() 将被拒绝。若无目标节点 ID,就不不需要等setRemoteDescription() 这个返回验证成功了。

    举个栗子

    diff --git a/files/zh-cn/web/api/rtcstatsreport/index.html b/files/zh-cn/web/api/rtcstatsreport/index.html index d15a95fa6f23f9..840f872a1f5381 100644 --- a/files/zh-cn/web/api/rtcstatsreport/index.html +++ b/files/zh-cn/web/api/rtcstatsreport/index.html @@ -5,7 +5,7 @@ ---

    {{APIRef("WebRTC")}}

    -

    {{draft("该页面目前尚不完整,正在建设中。 请注意,它还不能解答您所有的问题。")}}

    +

    {{draft("该页面目前尚不完整,正在建设中。请注意,它还不能解答您所有的问题。")}}

    RTCStatsReport 接口提供了通过调用 {{domxref("RTCPeerConnection.getStats()")}}, {{domxref("RTCRtpReceiver.getStats()")}},和 {{domxref("RTCRtpSender.getStats()")}} 这三个方法之一所获得的统计报告。该统计报告包含统计类别字符串名称到包含相应统计数据的对象的映射。

    diff --git a/files/zh-cn/web/api/screen/lockorientation/index.html b/files/zh-cn/web/api/screen/lockorientation/index.html index 599b10e4d3856e..fcef4597435570 100644 --- a/files/zh-cn/web/api/screen/lockorientation/index.html +++ b/files/zh-cn/web/api/screen/lockorientation/index.html @@ -32,7 +32,7 @@

    参数介绍

    它表示屏幕处于辅助肖像模式时的方向。如果设备与正常位置保持 180°,并且该位置处于纵向位置,或者设备的正常位置处于横向位置,并且持有的设备逆时针转动 90°,则屏幕将处于辅助人像模式。正常的位置是依赖于设备的。

    landscape-primary
    -
    它代表了屏幕处于主要风景模式时的方向。 如果设备保持在正常位置,并且该位置处于横向位置,或者设备的正常位置处于纵向位置,并且所保持的设备顺时针旋转 90°,则会将其视为主要横向模式。正常的位置是依赖于设备的。
    +
    它代表了屏幕处于主要风景模式时的方向。如果设备保持在正常位置,并且该位置处于横向位置,或者设备的正常位置处于纵向位置,并且所保持的设备顺时针旋转 90°,则会将其视为主要横向模式。正常的位置是依赖于设备的。
    landscape-secondary
    它代表了屏幕处于次要风景模式时的方向。如果设备与其正常位置保持 180°并且该位置处于横向,或者如果设备的正常位置是纵向的,并且所保持的设备逆时针旋转 90°,则将其视为次要横向模式。正常的位置是依赖于设备的。
    portrait
    diff --git a/files/zh-cn/web/api/scriptprocessornode/index.html b/files/zh-cn/web/api/scriptprocessornode/index.html index 7cf27434f10a61..daf32f6131e329 100644 --- a/files/zh-cn/web/api/scriptprocessornode/index.html +++ b/files/zh-cn/web/api/scriptprocessornode/index.html @@ -10,7 +10,7 @@
    -

    ScriptProcessorNode 接口允许使用 JavaScript 生成、处理、分析音频。它是一个 {{domxref("AudioNode")}}, 连接着两个缓冲区音频处理模块,其中一个缓冲区包含输入音频数据,另外一个包含处理后的输出音频数据。实现了 {{domxref("AudioProcessingEvent")}} 接口的一个事件,每当输入缓冲区有新的数据时,事件将被发送到该对象,并且事件将在数据填充到输出缓冲区后结束。

    +

    ScriptProcessorNode 接口允许使用 JavaScript 生成、处理、分析音频。它是一个 {{domxref("AudioNode")}},连接着两个缓冲区音频处理模块,其中一个缓冲区包含输入音频数据,另外一个包含处理后的输出音频数据。实现了 {{domxref("AudioProcessingEvent")}} 接口的一个事件,每当输入缓冲区有新的数据时,事件将被发送到该对象,并且事件将在数据填充到输出缓冲区后结束。

    The ScriptProcessorNode stores the input in a buffer, send the audioprocess event. The EventHandler takes the input buffer and fill the output buffer which is sent to the output by the ScriptProcessorNode.

    diff --git a/files/zh-cn/web/api/server-sent_events/index.html b/files/zh-cn/web/api/server-sent_events/index.html index fec629e050acba..ec7b5ade68caf8 100644 --- a/files/zh-cn/web/api/server-sent_events/index.html +++ b/files/zh-cn/web/api/server-sent_events/index.html @@ -15,7 +15,7 @@

    概念与使用

    -

    可以前往我们这篇文章 《使用 “server-sent events”》学习怎么使用 server-sent events。

    +

    可以前往我们这篇文章 《使用“server-sent events”》学习怎么使用 server-sent events。

    接口

    diff --git a/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html b/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html index e62301f6894b8e..728bdf0310fe1c 100644 --- a/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html +++ b/files/zh-cn/web/api/server-sent_events/using_server-sent_events/index.html @@ -114,7 +114,7 @@

    关闭事件流

    事件流格式

    -

    事件流仅仅是一个简单的文本数据流,文本应该使用 UTF-8 格式的编码。每条消息后面都由一个空行作为分隔符.以冒号开头的行为注释行,会被忽略。

    +

    事件流仅仅是一个简单的文本数据流,文本应该使用 UTF-8 格式的编码。每条消息后面都由一个空行作为分隔符。以冒号开头的行为注释行,会被忽略。

    注:注释行可以用来防止连接超时,服务器可以定期发送一条消息注释行,以保持连接不断。
    diff --git a/files/zh-cn/web/api/service_worker_api/index.html b/files/zh-cn/web/api/service_worker_api/index.html index b87e29877336aa..5bf57249384ece 100644 --- a/files/zh-cn/web/api/service_worker_api/index.html +++ b/files/zh-cn/web/api/service_worker_api/index.html @@ -85,7 +85,7 @@

    其他使用场景

  • 性能增强,比如预取用户可能需要的资源,比如相册中的后面数张图片
  • -

    未来 service workers 能够用来做更多使 web 平台接近原生应用的事。 值得关注的是,其他标准也能并且将会使用 service worker,例如:

    +

    未来 service workers 能够用来做更多使 web 平台接近原生应用的事。值得关注的是,其他标准也能并且将会使用 service worker,例如:

    • 后台同步:启动一个 service worker 即使没有用户访问特定站点,也可以更新缓存
    • diff --git a/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html b/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html index 2941890d25d467..dc607d2c96f37e 100644 --- a/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html +++ b/files/zh-cn/web/api/service_worker_api/using_service_workers/index.html @@ -50,7 +50,7 @@

      基本架构

    • 受 service worker 控制的页面打开后会尝试去安装 service worker。最先发送给 service worker 的事件是安装事件 (在这个事件里可以开始进行填充 IndexDB 和缓存站点资源)。这个流程同原生 APP 或者 Firefox OS APP 是一样的 — 让所有资源可离线访问。
    • 当 oninstall 事件的处理程序执行完毕后,可以认为 service worker 安装完成了。
    • 下一步是激活。当 service worker 安装完成后,会接收到一个激活事件 (activate event)。 onactivate 主要用途是清理先前版本的 service worker 脚本中使用的资源。
    • -
    • Service Worker 现在可以控制页面了,但仅是在 register()  成功后的打开的页面。也就是说,页面起始于有没有 service worker ,且在页面的接下来生命周期内维持这个状态。所以,页面不得不重新加载以让 service worker 获得完全的控制。
    • +
    • Service Worker 现在可以控制页面了,但仅是在 register()  成功后的打开的页面。也就是说,页面起始于有没有 service worker,且在页面的接下来生命周期内维持这个状态。所以,页面不得不重新加载以让 service worker 获得完全的控制。
    • @@ -148,17 +148,17 @@

      Service workers demo




      - 你可以查看 Github 上的源码, 也可以查看 在线示例。有一点需要我们重点关注的是 promise(查看 app.js 22-47 行),这是一个你上面读到的 Promises test demo 里的一个修改版,它们有以下不同: 

      + 你可以查看 Github 上的源码,也可以查看 在线示例。有一点需要我们重点关注的是 promise(查看 app.js 22-47 行),这是一个你上面读到的 Promises test demo 里的一个修改版,它们有以下不同: 

        -
      1. 原始的版本里,我们只传了一个我们想加载的图片的 URL 。在这个版本里,我们传了一个包含单个图片所有数据的 JSON(查看 image-list.js)。这是因为每一个 promise reslove 的所有数据必须传给 promise,因为它是异步的。如果你只传了 url ,那么当你 for 循环被遍历的时候你试图分别访问其他项,将不会有效的,因为 promise 的 resolve 不会和遍历(这个是同步的过程)同时完成。
      2. +
      3. 原始的版本里,我们只传了一个我们想加载的图片的 URL。在这个版本里,我们传了一个包含单个图片所有数据的 JSON(查看 image-list.js)。这是因为每一个 promise reslove 的所有数据必须传给 promise,因为它是异步的。如果你只传了 url,那么当你 for 循环被遍历的时候你试图分别访问其他项,将不会有效的,因为 promise 的 resolve 不会和遍历(这个是同步的过程)同时完成。
      4. 我们实际上用数组 resolve 了这些 promise,因为我们想让得到加载完的图片 blob 和 图片的名字、credit 和 alt 文本(查看 app.js  31-34 行)。Promises 只能 resolve 单个参数,所以你想 resolve 多个值的话,你需要用数组或对象。
      5.  为了访问 promise resolved  的值,我们接着通过 then 函数进行获取(app.js 60-64 行),这个有点古怪,但这就是 promise 工作的方式。

      现在来谈谈 Service workers

      -

      现在我们开始讨论 service workers !

      +

      现在我们开始讨论 service workers!

      注册你的 worker

      @@ -176,15 +176,15 @@

      注册你的 worker

      1. 外面的代码块做了一个特性检查,在注册之前确保 service worker 是支持的。
      2. -
      3. 接着,我们使用 {{domxref("ServiceWorkerContainer.register()") }} 函数来注册站点的 service worker,service worker 只是一个驻留在我们的 app 内的一个 JavaScript 文件 (注意,这个文件的 url 是相对于 origin, 而不是相对于引用它的那个 JS 文件)。
      4. -
      5. scope 参数是选填的,可以被用来指定你想让 service worker 控制的内容的子目录。在这个例子里,我们指定了 '/sw-test/',表示 app 的 origin 下的所有内容。如果你留空的话,默认值也是这个值, 我们在指定只是作为例子。
      6. +
      7. 接着,我们使用 {{domxref("ServiceWorkerContainer.register()") }} 函数来注册站点的 service worker,service worker 只是一个驻留在我们的 app 内的一个 JavaScript 文件 (注意,这个文件的 url 是相对于 origin,而不是相对于引用它的那个 JS 文件)。
      8. +
      9. scope 参数是选填的,可以被用来指定你想让 service worker 控制的内容的子目录。在这个例子里,我们指定了 '/sw-test/',表示 app 的 origin 下的所有内容。如果你留空的话,默认值也是这个值,我们在指定只是作为例子。
      10. .then() 函数链式调用我们的 promise,当 promise resolve 的时候,里面的代码就会执行。
      11. 最后面我们链了一个 .catch() 函数,当 promise rejected 才会执行。

      这就注册了一个 service worker,它工作在 worker context,所以没有访问 DOM 的权限。在正常的页面之外运行 service worker 的代码来控制它们的加载。

      -

      单个 service worker 可以控制很多页面。每个你的 scope 里的页面加载完的时候,安装在页面的 service worker 可以控制它。牢记你需要小心 service worker 脚本里的全局变量: 每个页面不会有自己独有的 worker。

      +

      单个 service worker 可以控制很多页面。每个你的 scope 里的页面加载完的时候,安装在页面的 service worker 可以控制它。牢记你需要小心 service worker 脚本里的全局变量:每个页面不会有自己独有的 worker。

      注意: 你的 service worker 函数像一个代理服务器一样,允许你修改请求和响应,用他们的缓存替代它们等等。

      @@ -200,7 +200,7 @@

      为什么我的 servi
      1. 你没有在 HTTPS 下运行你的程序
      2. -
      3. service worker 文件的地址没有写对— 需要相对于 origin , 而不是 app 的根目录。在我们的例子例, service worker 是在 https://mdn.github.io/sw-test/sw.js,app 的根目录是 https://mdn.github.io/sw-test/。应该写成 /sw-test/sw.js 而非 /sw.js.
      4. +
      5. service worker 文件的地址没有写对— 需要相对于 origin , 而不是 app 的根目录。在我们的例子例,service worker 是在 https://mdn.github.io/sw-test/sw.js,app 的根目录是 https://mdn.github.io/sw-test/。应该写成 /sw-test/sw.js 而非 /sw.js.
      6.  service worker 在不同的 origin 而不是你的 app 的,这是不被允许的。
      @@ -250,7 +250,7 @@

      安装和激活:填充你的缓
    • 这里我们 新增了一个 install 事件监听器,接着在事件上接了一个{{domxref("ExtendableEvent.waitUntil()") }}  方法——这会确保 Service Worker 不会在 waitUntil() 里面的代码执行完毕之前安装完成。
    • 在 waitUntil() 内,我们使用了 caches.open() 方法来创建了一个叫做 v1 的新的缓存,将会是我们的站点资源缓存的第一个版本。它返回了一个创建缓存的 promise,当它 resolved 的时候,我们接着会调用在创建的缓存示例上的一个方法  addAll(),这个方法的参数是一个由一组相对于 origin 的 URL 组成的数组,这些 URL 就是你想缓存的资源的列表。
    • 如果 promise 被 rejected,安装就会失败,这个 worker 不会做任何事情。这也是可以的,因为你可以修复你的代码,在下次注册发生的时候,又可以进行尝试。
    • -
    • 当安装成功完成之后, service worker 就会激活。在第一次你的 service worker 注册/激活时,这并不会有什么不同。但是当  service worker 更新 (稍后查看 更新你的 service worker 部分) 的时候 ,就不太一样了。
    • +
    • 当安装成功完成之后,service worker 就会激活。在第一次你的 service worker 注册/激活时,这并不会有什么不同。但是当  service worker 更新 (稍后查看 更新你的 service worker 部分) 的时候,就不太一样了。
    • @@ -267,7 +267,7 @@

      自定义请求的响应

      -

      每次任何被 service worker 控制的资源被请求到时,都会触发 fetch 事件,这些资源包括了指定的 scope 内的文档,和这些文档内引用的其他任何资源(比如 index.html 发起了一个跨域的请求来嵌入一个图片,这个也会通过 service worker 。)

      +

      每次任何被 service worker 控制的资源被请求到时,都会触发 fetch 事件,这些资源包括了指定的 scope 内的文档,和这些文档内引用的其他任何资源(比如 index.html 发起了一个跨域的请求来嵌入一个图片,这个也会通过 service worker。)

      你可以给 service worker 添加一个 fetch 的事件监听器,接着调用 event 上的 respondWith() 方法来劫持我们的 HTTP 响应,然后你用可以用自己的方法来更新他们。

      @@ -327,7 +327,7 @@

      恢复失败的请求

      在有 service worker cache 里匹配的资源时, caches.match(event.request) 是非常棒的。但是如果没有匹配资源呢?如果我们不提供任何错误处理,promise 就会 reject,同时也会出现一个网络错误。

      -

      幸运的是,service worker 的基于 promise 的结构,使得提供更多的成功的选项变得微不足道。 我们可以这样做:

      +

      幸运的是,service worker 的基于 promise 的结构,使得提供更多的成功的选项变得微不足道。我们可以这样做:

      self.addEventListener('fetch', function(event) {
         event.respondWith(
      @@ -337,7 +337,7 @@ 

      恢复失败的请求

      ); });
      -

      如果 promise reject 了, catch() 函数会执行默认的网络请求,意味着在网络可用的时候可以直接像服务器请求资源。

      +

      如果 promise reject 了,catch() 函数会执行默认的网络请求,意味着在网络可用的时候可以直接像服务器请求资源。

      如果我们足够聪明的话,我们就不会只是从服务器请求资源,而且还会把请求到的资源保存到缓存中,以便将来离线时所用!这意味着如果其他额外的图片被加入到  Star Wars 图库里,我们的 app 会自动抓取它们。下面就是这个诀窍:

      @@ -354,7 +354,7 @@

      恢复失败的请求

      ); });

    -

    这里我们用 fetch(event.request) 返回了默认的网络请求,它返回了一个 promise 。当网络请求的 promise 成功的时候,我们 通过执行一个函数用 caches.open('v1') 来抓取我们的缓存,它也返回了一个 promise。当这个 promise 成功的时候, cache.put() 被用来把这些资源加入缓存中。资源是从  event.request 抓取的,它的响应会被  response.clone() 克隆一份然后被加入缓存。这个克隆被放到缓存中,它的原始响应则会返回给浏览器来给调用它的页面。

    +

    这里我们用 fetch(event.request) 返回了默认的网络请求,它返回了一个 promise。当网络请求的 promise 成功的时候,我们 通过执行一个函数用 caches.open('v1') 来抓取我们的缓存,它也返回了一个 promise。当这个 promise 成功的时候, cache.put() 被用来把这些资源加入缓存中。资源是从  event.request 抓取的,它的响应会被  response.clone() 克隆一份然后被加入缓存。这个克隆被放到缓存中,它的原始响应则会返回给浏览器来给调用它的页面。

    为什么要这样做?这是因为请求和响应流只能被读取一次。为了给浏览器返回响应以及把它缓存起来,我们不得不克隆一份。所以原始的会返回给浏览器,克隆的会发送到缓存中。它们都是读取了一次。

    diff --git a/files/zh-cn/web/api/serviceworkercontainer/index.html b/files/zh-cn/web/api/serviceworkercontainer/index.html index 662210904bd858..52085432a3f744 100644 --- a/files/zh-cn/web/api/serviceworkercontainer/index.html +++ b/files/zh-cn/web/api/serviceworkercontainer/index.html @@ -16,7 +16,7 @@ ---

    {{SeeCompatTable}}{{APIRef("Service Workers API")}} 

    -

    ServiceWorkerContainer接口为 service worker 提供一个容器般的功能,包括对 service worker 的注册,卸载 ,更新和访问 service worker 的状态,以及他们的注册者

    +

    ServiceWorkerContainer接口为 service worker 提供一个容器般的功能,包括对 service worker 的注册,卸载,更新和访问 service worker 的状态,以及他们的注册者

    主要是{{domxref("ServiceWorkerContainer.register", "ServiceWorkerContainer.register(scriptURL, scope[, base])")}}提供一个注册 service worker 的方法,{{domxref("ServiceWorkerContainer.controller")}}将获取当前控制页面网络的 service worker

    @@ -24,7 +24,7 @@

    ?属性

    {{domxref("ServiceWorkerContainer.controller")}} {{readonlyinline}}
    -
    当?{{domxref("ServiceWorker")}}对象的 state 是 active 的时候,返回一个 {{domxref("ServiceWorker")}} ?对象 和{{domxref("ServiceWorkerRegistration.active")}}) 返回相同的对象。 如果当前的 state 都不是 active 或者强制刷新浏览器则返回 null。
    +
    当?{{domxref("ServiceWorker")}}对象的 state 是 active 的时候,返回一个 {{domxref("ServiceWorker")}} ?对象 和{{domxref("ServiceWorkerRegistration.active")}}) 返回相同的对象。如果当前的 state 都不是 active 或者强制刷新浏览器则返回 null。
    @@ -57,7 +57,7 @@

    ?方法

    ?举例

    -

    ?代码是service worker fallback-response sample (see fallback-response live) 的其中一段. ?首先检查浏览器是否支持 serviceWorker. 代码创建了一个 serviceWorker,并且打印出来当前页面的 serviceWorker 的?是否接管了页面的网络状态。如果没有需要刷新页面再次查看.  代码也处理了注册失败的情况

    +

    ?代码是service worker fallback-response sample (see fallback-response live) 的其中一段。?首先检查浏览器是否支持 serviceWorker. 代码创建了一个 serviceWorker,并且打印出来当前页面的 serviceWorker 的?是否接管了页面的网络状态。如果没有需要刷新页面再次查看。 代码也处理了注册失败的情况

    if ('serviceWorker' in navigator) {
       navigator.serviceWorker.register('service-worker.js', {scope: './'}).then(function() {
    diff --git a/files/zh-cn/web/api/serviceworkercontainer/register/index.html b/files/zh-cn/web/api/serviceworkercontainer/register/index.html
    index 92dc05d8e6b926..6519d7f01d9497 100644
    --- a/files/zh-cn/web/api/serviceworkercontainer/register/index.html
    +++ b/files/zh-cn/web/api/serviceworkercontainer/register/index.html
    @@ -28,7 +28,7 @@ 

    参数

    scriptURL
    service worker 脚本的 URL.
    options {{optional_inline}}
    -
    注册时提供选项的配置对象。 目前可用的选项包括: +
    注册时提供选项的配置对象。目前可用的选项包括:
    • scope: 一个 {{domxref("USVString")}},表示定义 service worker 注册范围的 URL ;service worker 可以控制的 URL 范围。通常是相对 URL。默认值是基于当前的 location,并以此来解析传入的路径。
    @@ -37,7 +37,7 @@

    参数

    返回

    -

    返回一个 {{domxref("Promise")}} 对象, 值是 {{domxref("ServiceWorkerRegistration")}} .

    +

    返回一个 {{domxref("Promise")}} 对象,值是 {{domxref("ServiceWorkerRegistration")}} .

    示例

    diff --git a/files/zh-cn/web/api/serviceworkerglobalscope/index.html b/files/zh-cn/web/api/serviceworkerglobalscope/index.html index af55e50e5a8c8a..73404aaf23d4aa 100644 --- a/files/zh-cn/web/api/serviceworkerglobalscope/index.html +++ b/files/zh-cn/web/api/serviceworkerglobalscope/index.html @@ -7,7 +7,7 @@

    ServiceWorker API 的ServiceWorkerGlobalScope 接口,代表一个 service worker 的全局执行上下文。

    -

    开发者应该知道, ServiceWorker 的状态在结束/重启的循环中不是一直保持不变的,所以每个事件处理器应该设定一个默认的全局状态。

    +

    开发者应该知道,ServiceWorker 的状态在结束/重启的循环中不是一直保持不变的,所以每个事件处理器应该设定一个默认的全局状态。

    一旦成功地注册了 service worker,为了节省内存和处理器,它将在他的状态达到了空闲的时候被终止。 一个在激活状态的 service worker 为了响应事件是可以自动重启的,就像这两个方法, {{domxref("ServiceWorkerGlobalScope.onfetch")}} 或者{{domxref("ServiceWorkerGlobalScope.onmessage")}}.

    diff --git a/files/zh-cn/web/api/settimeout/index.html b/files/zh-cn/web/api/settimeout/index.html index e258b481bd442c..1c3e0415fa93ef 100644 --- a/files/zh-cn/web/api/settimeout/index.html +++ b/files/zh-cn/web/api/settimeout/index.html @@ -362,7 +362,7 @@

    最小延时 >=4ms

    setInterval(f, 0);
    -

    在 Chrome 和 Firefox 中, 定时器的第 5 次调用被阻塞了;在 Safari 是在第 6 次;Edge 是在第 3 次。Gecko 从这个版本 version 56开始对 setInterval() 开始采用这样的机制(setTimeout()已经实现,具体请参考以下内容)。

    +

    在 Chrome 和 Firefox 中,定时器的第 5 次调用被阻塞了;在 Safari 是在第 6 次;Edge 是在第 3 次。Gecko 从这个版本 version 56开始对 setInterval() 开始采用这样的机制(setTimeout()已经实现,具体请参考以下内容)。

    一直以来,不同浏览器中出现这种最小延迟的情况有所不同(例如 Firefox)- 从其他地方调用了 setInterval( ),或者在嵌套函数调用 setTimeout( ) 时(嵌套级别达到特定深度时),都会出现超时延迟。

    diff --git a/files/zh-cn/web/api/sharedworker/index.html b/files/zh-cn/web/api/sharedworker/index.html index 2b54d8a956d432..016d139df16fba 100644 --- a/files/zh-cn/web/api/sharedworker/index.html +++ b/files/zh-cn/web/api/sharedworker/index.html @@ -26,7 +26,7 @@

    构造函数

    属性

    -

    继承自其父类 {{domxref("EventTarget")}},并实现 {{domxref("AbstractWorker")}} 中的属性 。

    +

    继承自其父类 {{domxref("EventTarget")}},并实现 {{domxref("AbstractWorker")}} 中的属性。

    {{domxref("AbstractWorker.onerror")}}
    diff --git a/files/zh-cn/web/api/sourcebuffer/appendbuffer/index.html b/files/zh-cn/web/api/sourcebuffer/appendbuffer/index.html index 82872cc80dc26c..68ce3357933862 100644 --- a/files/zh-cn/web/api/sourcebuffer/appendbuffer/index.html +++ b/files/zh-cn/web/api/sourcebuffer/appendbuffer/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("Media Source Extensions")}}{{SeeCompatTable}}
    -
    appendBuffer()方法将媒体片段数据添加到SourceBuffer对象中,其中媒体片段用{{domxref("ArrayBuffer")}} 或 ArrayBufferView 对象存储 。
    +
    appendBuffer()方法将媒体片段数据添加到SourceBuffer对象中,其中媒体片段用{{domxref("ArrayBuffer")}} 或 ArrayBufferView 对象存储。

    Syntax

    diff --git a/files/zh-cn/web/api/storage/removeitem/index.html b/files/zh-cn/web/api/storage/removeitem/index.html index 3f1874ece13722..ca0d5e37b2e09c 100644 --- a/files/zh-cn/web/api/storage/removeitem/index.html +++ b/files/zh-cn/web/api/storage/removeitem/index.html @@ -5,7 +5,7 @@ ---

    {{APIRef("Web Storage API")}}

    -

    {{domxref("Storage")}} 接口的 removeItem() 方法,接受一个键名作为参数,会从给定的 Storage 对象中删除该键名(如果存在)。 如果没有与该给定键名匹配的项,则此方法将不执行任何操作。

    +

    {{domxref("Storage")}} 接口的 removeItem() 方法,接受一个键名作为参数,会从给定的 Storage 对象中删除该键名(如果存在)。如果没有与该给定键名匹配的项,则此方法将不执行任何操作。

    语法

    diff --git a/files/zh-cn/web/api/storage_api/index.html b/files/zh-cn/web/api/storage_api/index.html index 28a426886841c3..431b067a0912a9 100644 --- a/files/zh-cn/web/api/storage_api/index.html +++ b/files/zh-cn/web/api/storage_api/index.html @@ -13,7 +13,7 @@ ---

    {{securecontext_header}}{{DefaultAPISidebar("Storage")}}

    -

    Web 存储标准,the Storage Standard,定义了一个通用的、共享的存储系统,供所有 API 和技术使用,以存储各个网站的内容可访问数据。 Storage API 允许网站的代码、Web 应用程序知道它们可以使用、已经使用多少存储空间。空间不足时,{{Glossary("user agent", "用户代理")}}会自动清理站点数据,以便为其他用途腾出空间。而 Storage API 甚至可以控制:在执行清理之前,是否需要提醒代码或 Web 应用程序,以便作出反应。

    +

    Web 存储标准,the Storage Standard,定义了一个通用的、共享的存储系统,供所有 API 和技术使用,以存储各个网站的内容可访问数据。Storage API 允许网站的代码、Web 应用程序知道它们可以使用、已经使用多少存储空间。空间不足时,{{Glossary("user agent", "用户代理")}}会自动清理站点数据,以便为其他用途腾出空间。而 Storage API 甚至可以控制:在执行清理之前,是否需要提醒代码或 Web 应用程序,以便作出反应。

    {{AvailableInWorkers}}

    @@ -59,7 +59,7 @@

    存储模式

    数据持久性与清理

    -

    如果站点或应用程序具有 “永久存储(persistent-storage” 功能权限,则可以使用 {{domxref("StorageManager.persist()")}} 方法来请求将其 box 设为持久的。由于使用特性或其他度量,用户代理还可以决定使站点的存储单元持久化。“持久存储”功能的与权限相关的标志、算法和类型都设置为权限的标准默认值,只是整个源位置的权限状态必须相同,并且如果未“授予”权限状态(无论出于何种原因,访问持久性存储功能被拒绝),源站点存储单元的 box 模式总是“尽力”。

    +

    如果站点或应用程序具有“永久存储(persistent-storage”功能权限,则可以使用 {{domxref("StorageManager.persist()")}} 方法来请求将其 box 设为持久的。由于使用特性或其他度量,用户代理还可以决定使站点的存储单元持久化。“持久存储”功能的与权限相关的标志、算法和类型都设置为权限的标准默认值,只是整个源位置的权限状态必须相同,并且如果未“授予”权限状态(无论出于何种原因,访问持久性存储功能被拒绝),源站点存储单元的 box 模式总是“尽力”。

    注意:请参考 使用 Permissions API 以了解更多关于申请与管理权限的信息。

    @@ -68,7 +68,7 @@

    数据持久性与清理

    当清除站点存储单元时,源站的框被视为单个实体;如果用户代理需要清除它并且用户批准,则清除整个数据存储,而不是提供某种仅从单个 api 清除数据的方法。


    - 如果一个框被标记为 “持久(persistent)” ,那么如果没有数据的源代码本身或用户明确地这样做,用户代理将不会清除内容。这包括用户选择“清除缓存”或“清除最近的历史记录”选项等场景。将特别要求用户具有删除永久性站点存储单元的权限。

    + 如果一个框被标记为“持久(persistent)” ,那么如果没有数据的源代码本身或用户明确地这样做,用户代理将不会清除内容。这包括用户选择“清除缓存”或“清除最近的历史记录”选项等场景。将特别要求用户具有删除永久性站点存储单元的权限。

    配额与使用量的估算

    diff --git a/files/zh-cn/web/api/storagemanager/index.html b/files/zh-cn/web/api/storagemanager/index.html index a6c742800f71be..575f479457b090 100644 --- a/files/zh-cn/web/api/storagemanager/index.html +++ b/files/zh-cn/web/api/storagemanager/index.html @@ -5,7 +5,7 @@ ---

    {{securecontext_header}}{{SeeCompatTable}}{{APIRef("Storage")}}

    -

    Storage APIStorageManager接口提供了用于管理数据本地存储权限和估算可用存储空间的接口。 您可以使用{{domxref("navigator.storage")}}或{{domxref("WorkerNavigator.storage")}}对此接口进行引用。

    +

    Storage APIStorageManager接口提供了用于管理数据本地存储权限和估算可用存储空间的接口。您可以使用{{domxref("navigator.storage")}}或{{domxref("WorkerNavigator.storage")}}对此接口进行引用。

    方法

    diff --git a/files/zh-cn/web/api/storagemanager/persisted/index.html b/files/zh-cn/web/api/storagemanager/persisted/index.html index 91298fe0977ff3..3b50e24cbbb079 100644 --- a/files/zh-cn/web/api/storagemanager/persisted/index.html +++ b/files/zh-cn/web/api/storagemanager/persisted/index.html @@ -5,7 +5,7 @@ ---

    {{securecontext_header}}{{APIRef("Storage")}}{{SeeCompatTable}}

    -

    persisted()方法是{{domxref("StorageManager")}}的一个接口,如果盒存储模式(box mode)的值为 “persistent” 则返回一个 resolved 状态值为true的{{jsxref('Promise')}}。

    +

    persisted()方法是{{domxref("StorageManager")}}的一个接口,如果盒存储模式(box mode)的值为“persistent”则返回一个 resolved 状态值为true的{{jsxref('Promise')}}。

    语法

    diff --git a/files/zh-cn/web/api/streams_api/concepts/index.html b/files/zh-cn/web/api/streams_api/concepts/index.html index 0556a79a6e77a3..2a98eeecefb5c0 100644 --- a/files/zh-cn/web/api/streams_api/concepts/index.html +++ b/files/zh-cn/web/api/streams_api/concepts/index.html @@ -32,7 +32,7 @@

    Readable streams

    另一个您将用到的对象叫做 controller —— 每个 reader 都有一个关联的 controller,用来控制流(例如,可以将流 close)。

    -

    一个流一次只能被一个 reader 读;当一个 reader 被创建并开始读一个流(an active reader),我们说,它被 locked 在该流上。如果您想让另一个 reader 读这个流,则通常需要先取消第一个 reader ,再执行其他操作。(您可以 tee 流,参阅下面的 Teeing 部分)

    +

    一个流一次只能被一个 reader 读;当一个 reader 被创建并开始读一个流(an active reader),我们说,它被 locked 在该流上。如果您想让另一个 reader 读这个流,则通常需要先取消第一个 reader,再执行其他操作。(您可以 tee 流,参阅下面的 Teeing 部分)

    注意,有两种不同类型的可读流。除了传统的可读流之外,还有一种类型叫做字节流 —— 这是传统流的扩展版本,用于读取底层字节源。相比可读流,字节流除了 default reader ,还可以使用 BYOB reader (BYOB, or "bring your own buffer", "带上你自己的缓冲") 。这种 reader 可以直接将流读入开发者提供的缓冲区,从而最大限度地减少所需的复制。您的代码将使用哪种底层流(以及使用哪种 reader 和 controller)取决于流最初是如何创建的(请参阅{{domxref("ReadableStream.ReadableStream","ReadableStream()")}} 构造函数页面)。

    @@ -56,7 +56,7 @@

    Writable streams

    一个 Writable stream (可写流) 是一个可以写入数据的数据终点,在 JavaScript 中以一个 {{domxref("WritableStream")}} 对象表示。这是 JavaScript 层面对 underlying sink (底层汇) 的抽象 —— 底层汇是某个可以写入原始数据的更低层次的 I/O 数据汇。

    -

    数据由一个 writer 写入流中,每次一个 chunk 。chunk 和可读流的 reader 一样可以有多种类型。您可以用任何方式生成要被写入的块;writer 加上相关的代码称为 producer

    +

    数据由一个 writer 写入流中,每次一个 chunk。chunk 和可读流的 reader 一样可以有多种类型。您可以用任何方式生成要被写入的块;writer 加上相关的代码称为 producer

    When a writer is created and starts writing to a stream (an active writer), it is said to be locked to it. Only one writer can write to a writable stream at one time. If you want another writer to start writing to your stream, you typically need to abort it before you then attach another writer to it.

    diff --git a/files/zh-cn/web/api/streams_api/using_readable_streams/index.html b/files/zh-cn/web/api/streams_api/using_readable_streams/index.html index 36347167f9bcae..d423a2f1191eee 100644 --- a/files/zh-cn/web/api/streams_api/using_readable_streams/index.html +++ b/files/zh-cn/web/api/streams_api/using_readable_streams/index.html @@ -13,7 +13,7 @@
    -

    提示: 如果你正在查询关于可读写的文件流, 请查看使用可写文件流 .

    +

    提示: 如果你正在查询关于可读写的文件流,请查看使用可写文件流 .

    Browser support

    diff --git a/files/zh-cn/web/api/stylesheet/index.html b/files/zh-cn/web/api/stylesheet/index.html index e0714d417e4c5e..0801529b2c0ab9 100644 --- a/files/zh-cn/web/api/stylesheet/index.html +++ b/files/zh-cn/web/api/stylesheet/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("CSSOM")}}
    -

     表示一个实现StyleSheet接口的对象样式表。 CSS 样式表将进一步实现更专业的 {{domxref("CSSStyleSheet")}} 接口。

    +

     表示一个实现StyleSheet接口的对象样式表。CSS 样式表将进一步实现更专业的 {{domxref("CSSStyleSheet")}} 接口。

    属性

    diff --git a/files/zh-cn/web/api/subtlecrypto/index.html b/files/zh-cn/web/api/subtlecrypto/index.html index cdf4a2d2ece1e3..9fca2e38591803 100644 --- a/files/zh-cn/web/api/subtlecrypto/index.html +++ b/files/zh-cn/web/api/subtlecrypto/index.html @@ -39,7 +39,7 @@

    生成和派生密钥

    generateKey() 和 deriveKey() 函数都可以创建一个新的 CryptoKey 对象。

    -

    不同之处在于 generateKey() 每次都会生成一个新的键值对, 而 deriveKey() 通过从基础密钥资源中生成一个新的密钥。如果为两个独立的deriveKey()提供相同的基础密钥资源,那么你会获得两个具有相同基础值的 CryptoKey 对象。如果你想通过密码派生加密密钥,然后从相同的密码派生相同的密钥以解密数据,那么这将会非常有用。

    +

    不同之处在于 generateKey() 每次都会生成一个新的键值对,而 deriveKey() 通过从基础密钥资源中生成一个新的密钥。如果为两个独立的deriveKey()提供相同的基础密钥资源,那么你会获得两个具有相同基础值的 CryptoKey 对象。如果你想通过密码派生加密密钥,然后从相同的密码派生相同的密钥以解密数据,那么这将会非常有用。

    导入和导出密钥

    diff --git a/files/zh-cn/web/api/svgaelement/index.html b/files/zh-cn/web/api/svgaelement/index.html index a366520da61dfa..7a872d1d1a46b0 100644 --- a/files/zh-cn/web/api/svgaelement/index.html +++ b/files/zh-cn/web/api/svgaelement/index.html @@ -58,11 +58,11 @@

    属性

    {{domxref("SVGAElement.hreflang")}}

    -

        是一个反映 hreflang 属性的字符串( DOMString ),表示链接资源的语言种类。

    +

        是一个反映 hreflang 属性的字符串(DOMString),表示链接资源的语言种类。

    {{domxref("SVGAElement.ping")}}

    -

        是一个反映ping值的字符串( DOMString ),包含以空格分隔开的URL列表,当超链接可以被跟踪时,浏览器会(在后台)发送有PING主体的 {{HTTPMethod("POST")}} 的请求,一般用于追踪。

    +

        是一个反映 ping 值的字符串(DOMString),包含以空格分隔开的 URL 列表,当超链接可以被跟踪时,浏览器会(在后台)发送有 PING 主体的 {{HTTPMethod("POST")}} 的请求,一般用于追踪。

    {{domxref("SVGAElement.referrerPolicy")}}

    @@ -82,11 +82,11 @@

    属性

    {{domxref("SVGAElement.text")}}

    -

        是一个字符串( DOMString ),作为 {{domxref("Node.textContent")}} 属性的代名词。

    +

        是一个字符串(DOMString),作为 {{domxref("Node.textContent")}} 属性的代名词。

    {{domxref("SVGAElement.type")}}

    -

        是一个反映 type 属性的字符串( DOMString ),表示链接资源的MIME种类。

    +

        是一个反映 type 属性的字符串(DOMString),表示链接资源的 MIME 种类。

    方法

    diff --git a/files/zh-cn/web/api/svganimationelement/targetelement/index.html b/files/zh-cn/web/api/svganimationelement/targetelement/index.html index fd722f40051f78..d7d641f38e9e0b 100644 --- a/files/zh-cn/web/api/svganimationelement/targetelement/index.html +++ b/files/zh-cn/web/api/svganimationelement/targetelement/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("SVG")}}
    -

    SVGAnimationElement.targetElement属性是指完成动画的元素。如果没有目标元素在执行动画(例如:因为 {{SVGAttr("href")}}属性指定了一个未知的元素 ),这个值将返回null

    +

    SVGAnimationElement.targetElement属性是指完成动画的元素。如果没有目标元素在执行动画 (例如:因为 {{SVGAttr("href")}}属性指定了一个未知的元素 ),这个值将返回null

    语法

    diff --git a/files/zh-cn/web/api/svgelement/index.html b/files/zh-cn/web/api/svgelement/index.html index ea08becf6b0bbb..cfc59fe7232f42 100644 --- a/files/zh-cn/web/api/svgelement/index.html +++ b/files/zh-cn/web/api/svgelement/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("SVG")}}
    -
    所有SVG DOM类的父类.
    +
    所有 SVG DOM 类的父类。
     
    @@ -28,7 +28,7 @@

    属性

    方法

    -

    SVGElement类本身没有方法, 但拥有从父类{{domxref("Element")}}继承的方法.

    +

    SVGElement类本身没有方法,但拥有从父类{{domxref("Element")}}继承的方法。

    规范

    diff --git a/files/zh-cn/web/api/svgevent/index.html b/files/zh-cn/web/api/svgevent/index.html index cc0ca992389dfd..acb668e8271382 100644 --- a/files/zh-cn/web/api/svgevent/index.html +++ b/files/zh-cn/web/api/svgevent/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("SVG")}}
    -

    {{domxref("SVGEvent")}} 是一种与SVG相关事件所对应的事件对象接口。

    +

    {{domxref("SVGEvent")}} 是一种与 SVG 相关事件所对应的事件对象接口。

    @@ -23,7 +23,7 @@

    Properties

    - + diff --git a/files/zh-cn/web/api/svggeometryelement/gettotallength/index.html b/files/zh-cn/web/api/svggeometryelement/gettotallength/index.html index 7a79a330a93bd8..749cfd76130a33 100644 --- a/files/zh-cn/web/api/svggeometryelement/gettotallength/index.html +++ b/files/zh-cn/web/api/svggeometryelement/gettotallength/index.html @@ -6,10 +6,10 @@ ---
    {{APIRef("SVG")}}
    -

     SVGPathElement.getTotalLength() 该方法返回用户代理对路径总长度(以用户单位为单位)的计算值。

    +

     SVGPathElement.getTotalLength() 该方法返回用户代理对路径总长度 (以用户单位为单位) 的计算值。

    -

    注意:在SVG 2中,该方法被移动到 {{DOMxRef("SVGGeometryElement")}} 接口,由 {{DOMxRef("SVGPathElement")}} 继承。

    +

    注意:在 SVG 2 中,该方法被移动到 {{DOMxRef("SVGGeometryElement")}} 接口,由 {{DOMxRef("SVGPathElement")}} 继承。

    语法

    @@ -19,7 +19,7 @@

    语法

    返回值

    -

    指示路径总长度(以用户单位为单位)的浮点数。

    +

    指示路径总长度 (以用户单位为单位) 的浮点数。

    规格

    diff --git a/files/zh-cn/web/api/svggraphicselement/getbbox/index.html b/files/zh-cn/web/api/svggraphicselement/getbbox/index.html index 4649341611fe60..57111b54c8ee9a 100644 --- a/files/zh-cn/web/api/svggraphicselement/getbbox/index.html +++ b/files/zh-cn/web/api/svggraphicselement/getbbox/index.html @@ -6,7 +6,7 @@ - getBBox translation_of: Web/API/SVGGraphicsElement/getBBox --- -

    SVGGraphicsElement.getBBox()允许我们确定对象适合的最小矩形的坐标。返回的坐标是相对于当前svg空间的,即在将所有几何属性应用于目标元素中包含的所有元素之后。

    +

    SVGGraphicsElement.getBBox()允许我们确定对象适合的最小矩形的坐标。返回的坐标是相对于当前 svg 空间的,即在将所有几何属性应用于目标元素中包含的所有元素之后。

    Note: getBBox must return the actual bounding box at the time the method was called, even in case the element has not yet been rendered. It also neglects any transformation applied on the element or its parents.

    diff --git a/files/zh-cn/web/api/svggraphicselement/index.html b/files/zh-cn/web/api/svggraphicselement/index.html index 6846775440c731..9e60447187f8f3 100644 --- a/files/zh-cn/web/api/svggraphicselement/index.html +++ b/files/zh-cn/web/api/svggraphicselement/index.html @@ -13,12 +13,12 @@ ---
    {{APIRef("SVG")}}
    -

     SVGGraphicsElement 接口表示SVG元素,其主要目的是将图形直接渲染到组中。

    +

     SVGGraphicsElement 接口表示 SVG 元素,其主要目的是将图形直接渲染到组中。

    {{InheritanceDiagram(600, 120)}}

    -

    提示: 该接口是SVG 2中引入的,它取代了SVG 1.1中的{{domxref("SVGLocatable")}}和{{domxref("SVGTransformable")}}接口。

    +

    提示: 该接口是 SVG 2 中引入的,它取代了 SVG 1.1 中的{{domxref("SVGLocatable")}}和{{domxref("SVGTransformable")}}接口。

    属性

    @@ -38,9 +38,9 @@

    方法

    {{domxref("SVGGraphicsElement.getBBox()")}}
    返回一个{{domxref("DOMRect")}},它表示当前元素的计算出的边界框。
    {{domxref("SVGGraphicsElement.getCTM()")}}
    -
    返回一个{{domxref("DOMMatrix")}},代表将当前元素的坐标系转换为其SVG视口的坐标系的矩阵。
    +
    返回一个{{domxref("DOMMatrix")}},代表将当前元素的坐标系转换为其 SVG 视口的坐标系的矩阵。
    {{domxref("SVGGraphicsElement.getScreenCTM()")}}
    -
    返回一个{{domxref("DOMMatrix")}}代表表示将当前元素的坐标系转换为SVG文档片段的SVG视口的坐标系的矩阵。
    +
    返回一个{{domxref("DOMMatrix")}}代表表示将当前元素的坐标系转换为 SVG 文档片段的 SVG 视口的坐标系的矩阵。

    规范

    diff --git a/files/zh-cn/web/api/svgsvgelement/index.html b/files/zh-cn/web/api/svgsvgelement/index.html index 19a473db6b31c4..4f030cc665f592 100644 --- a/files/zh-cn/web/api/svgsvgelement/index.html +++ b/files/zh-cn/web/api/svgsvgelement/index.html @@ -27,37 +27,37 @@

    属性

    {{domxref("SVGSVGElement.contentStyleType")}}
    {{domxref("SVGAnimatedLength")}}对应于给定{{SVGElement("svg")}}元素的{{SVGAttr("contentStyleType")}}属性。
    {{domxref("SVGSVGElement.viewport")}}
    -
    一个{{domxref("SVGRect")}},包含与给定{{SVGElement("svg")}}元素对应的视口(隐式或显式)的位置和大小。当浏览器实际呈现内容时,位置和大小值表示呈现时的实际值。位置和大小值是父元素坐标系中的无单位值。如果不存在父元素(即{{SVGElement("svg")}}元素表示文档树的根),如果此SVG文档作为另一文档的一部分嵌入(例如,通过HTML {{HTMLElement(" object")}} element),然后位置和大小是父文档坐标系中的无单位值。(如果父级使用CSS或XSL布局,
    +
    一个{{domxref("SVGRect")}},包含与给定{{SVGElement("svg")}}元素对应的视口(隐式或显式)的位置和大小。当浏览器实际呈现内容时,位置和大小值表示呈现时的实际值。位置和大小值是父元素坐标系中的无单位值。如果不存在父元素(即{{SVGElement("svg")}}元素表示文档树的根),如果此 SVG 文档作为另一文档的一部分嵌入(例如,通过 HTML {{HTMLElement(" object")}} element),然后位置和大小是父文档坐标系中的无单位值。(如果父级使用 CSS 或 XSL 布局,
    {{domxref("SVGSVGElement.pixelUnitToMillimeterX")}} {{deprecated_inline}}
    -
    一个浮点数,表示沿视口x轴的像素单位(由CSS2定义)的大小,表示70dpi到120dpi范围内的某个单位,并且在支持此功能的系统上,可能实际上与特征匹配目标媒体。在不可能知道像素大小的系统上,提供合适的默认像素大小。
    +
    一个浮点数,表示沿视口 x 轴的像素单位(由 CSS2 定义)的大小,表示 70dpi 到 120dpi 范围内的某个单位,并且在支持此功能的系统上,可能实际上与特征匹配目标媒体。在不可能知道像素大小的系统上,提供合适的默认像素大小。
    {{domxref("SVGSVGElement.pixelUnitToMillimeterY")}} {{deprecated_inline}}
    -
    浮点数,表示沿视口y轴的像素单位大小。
    +
    浮点数,表示沿视口 y 轴的像素单位大小。
    {{domxref("SVGSVGElement.screenPixelToMillimeterX")}} {{deprecated_inline}}
    -
    DOM级别2中的用户界面(UI)事件指示给定UI事件发生的屏幕位置。当浏览器实际知道“屏幕单元”的物理尺寸时,此浮动属性将表示该信息; 否则,用户代理将提供合适的默认值,例如.28mm。
    +
    DOM 级别 2 中的用户界面(UI)事件指示给定 UI 事件发生的屏幕位置。当浏览器实际知道“屏幕单元”的物理尺寸时,此浮动属性将表示该信息; 否则,用户代理将提供合适的默认值,例如.28mm。
    {{domxref("SVGSVGElement.screenPixelToMillimeterY")}} {{deprecated_inline}}
    -
    沿着视口的y轴的屏幕像素的对应大小。
    +
    沿着视口的 y 轴的屏幕像素的对应大小。
    {{domxref("SVGSVGElement.useCurrentView")}}
    -
    当前最内层SVG文档片段的初始视图(即放大和平移之前)可以是“标准”视图,即基于{{SVGElement("svg")}}元素的属性,例如{{SVGAttr ("viewBox")}})或“自定义”视图(即指向特定{{SVGElement("view")}}或其他元素的超链接)。如果初始视图是“标准”视图,则此属性为false。如果初始视图是“自定义”视图,则此属性为true
    +
    当前最内层 SVG 文档片段的初始视图(即放大和平移之前)可以是“标准”视图,即基于{{SVGElement("svg")}}元素的属性,例如{{SVGAttr ("viewBox")}})或“自定义”视图(即指向特定{{SVGElement("view")}}或其他元素的超链接)。如果初始视图是“标准”视图,则此属性为false。如果初始视图是“自定义”视图,则此属性为true
    {{domxref("SVGSVGElement.currentView")}}
    -
    {{domxref("SVGViewSpec")}}定义当前最里面的SVG文档片段的初始视图(即,放大和平移之前)。意义取决于具体情况:如果初始视图是“标准”视图,则: +
    {{domxref("SVGViewSpec")}}定义当前最里面的 SVG 文档片段的初始视图(即,放大和平移之前)。意义取决于具体情况:如果初始视图是“标准”视图,则:
      -
    • {{SVGAttr("viewBox")}},{{SVGAttr("preserveAspectRatio")}}和{{SVGAttr("currentView")}}中的{{SVGAttr("zoomAndPan")}}的值将与值匹配对于SVGSVGElement直接打开的相应DOM属性
    • -
    • } {{SVGAttr("currentView")}}中的{{SVGAttr("transform")}}和{{SVGAttr("viewTarget")}}的值将为null
    • +
    • {{SVGAttr("viewBox")}},{{SVGAttr("preserveAspectRatio")}}和{{SVGAttr("currentView")}}中的{{SVGAttr("zoomAndPan")}}的值将与值匹配对于SVGSVGElement直接打开的相应 DOM 属性
    • +
    • } {{SVGAttr("currentView")}}中的{{SVGAttr("transform")}}和{{SVGAttr("viewTarget")}}的值将为 null
    如果初始视图是{{SVGElement("view")}}元素的链接,那么:
    • 在{{SVGAttr("currentView")}}中{{SVGAttr("viewBox")}},{{SVGAttr("preserveAspectRatio")}}和{{SVGAttr("zoomAndPan")}}的值将对应于给定{{SVGElement("view")}}元素的相应属性
    • -
    • } {{SVGAttr("currentView")}}中的{{SVGAttr("transform")}}和{{SVGAttr("viewTarget")}}的值将为null
    • +
    • } {{SVGAttr("currentView")}}中的{{SVGAttr("transform")}}和{{SVGAttr("viewTarget")}}的值将为 null
    如果初始视图是指向另一个元素的链接(即,除了{{SVGElement("view")}}}之外的其他元素,则:
      -
    • {{SVGAttr("viewBox")}},{{SVGAttr("preserveAspectRatio")}}和{{SVGAttr("currentView")}}中的{{SVGAttr("zoomAndPan")}}的值将与值匹配对于SVGSVGElement直接用于最近祖先{{SVGElement("svg")}}元素的相应DOM属性
    • -
    • {{SVGAttr("currentView")}}中{{SVGAttr("transform")}}的值将为null
    • +
    • {{SVGAttr("viewBox")}},{{SVGAttr("preserveAspectRatio")}}和{{SVGAttr("currentView")}}中的{{SVGAttr("zoomAndPan")}}的值将与值匹配对于SVGSVGElement直接用于最近祖先{{SVGElement("svg")}}元素的相应 DOM 属性
    • +
    • {{SVGAttr("currentView")}}中{{SVGAttr("transform")}}的值将为 null
    • {{SVGAttr("currentView")}}中的{{SVGAttr("viewTarget")}}将代表链接的目标
    - 如果初始视图是使用SVG视图规范片段标识符(即#svgView(...))链接到SVG文档片段,则: + 如果初始视图是使用 SVG 视图规范片段标识符(即#svgView(...))链接到 SVG 文档片段,则:
    • the values for {{SVGAttr("viewBox")}}, {{SVGAttr("preserveAspectRatio")}}, {{SVGAttr("zoomAndPan")}}, {{SVGAttr("transform")}} and {{SVGAttr("viewTarget")}} within {{SVGAttr("currentView")}} will correspond to the values from the SVG view specification fragment identifier
    • diff --git a/files/zh-cn/web/api/svguseelement/index.html b/files/zh-cn/web/api/svguseelement/index.html index 5b0abde760a3c0..26565263241ba6 100644 --- a/files/zh-cn/web/api/svguseelement/index.html +++ b/files/zh-cn/web/api/svguseelement/index.html @@ -5,7 +5,7 @@ ---
      {{APIRef("SVG")}}
      -

      SVG使用DOM接口

      +

      SVG 使用 DOM 接口

      SVGUseElement接口对应于{{SVGElement("use")}}元素。

      diff --git a/files/zh-cn/web/api/text/assignedslot/index.html b/files/zh-cn/web/api/text/assignedslot/index.html index d3a5b280fc96c9..ab1936cd04c520 100644 --- a/files/zh-cn/web/api/text/assignedslot/index.html +++ b/files/zh-cn/web/api/text/assignedslot/index.html @@ -13,7 +13,7 @@

      Syntax

      Value

      -

      一个 {{domxref("HTMLSlotElement")}} 对象.

      +

      一个 {{domxref("HTMLSlotElement")}} 对象。

      Specifications

      diff --git a/files/zh-cn/web/api/text/iselementcontentwhitespace/index.html b/files/zh-cn/web/api/text/iselementcontentwhitespace/index.html index bb1d42731e887d..29e8a178281ee9 100644 --- a/files/zh-cn/web/api/text/iselementcontentwhitespace/index.html +++ b/files/zh-cn/web/api/text/iselementcontentwhitespace/index.html @@ -5,20 +5,20 @@ ---

      {{ ApiRef() }}

      {{ obsolete_header("") }}

      -

      返回一个布尔值,表明该文本节点的内容是否全部是由空白符组成的.

      +

      返回一个布尔值,表明该文本节点的内容是否全部是由空白符组成的。

      - 警告: 该属性已经在DOM level 4中被废弃, 在一些新版本的浏览器(Gecko 10.0 )中已经被删除.
      + 警告:该属性已经在 DOM level 4 中被废弃,在一些新版本的浏览器 (Gecko 10.0 ) 中已经被删除。

      语法

      b = textnode.isElementContentWhitespace;
       

      例子

      -

      下例中 ,我们创建了一个内容为空白符和文字组成的文本节点.该节点的isElementContentWhitespace属性为false.

      +

      下例中 ,我们创建了一个内容为空白符和文字组成的文本节点。该节点的 isElementContentWhitespace 属性为 false.

      var tn = document.createTextNode("Hello world");
      -tn.isElementContentWhitespace; /* 返回false */
      +tn.isElementContentWhitespace; /* 返回 false */
       
      -

      下例中 ,我们创建了一个内容全部为空白符的文本节点.该节点的isElementContentWhitespace属性为true.

      +

      下例中 ,我们创建了一个内容全部为空白符的文本节点。该节点的 isElementContentWhitespace 属性为 true.

      var ws = document.createTextNode("  \t \r\n   ")
      -ws.isElementContentWhitespace; /* 返回true */
      +ws.isElementContentWhitespace; /* 返回 true */
       

      规范

      DOM Level 3 Core: Text.isElementContentWhitespace

      diff --git a/files/zh-cn/web/api/text/splittext/index.html b/files/zh-cn/web/api/text/splittext/index.html index 4ad321bf85a52d..9b1bf5309a97a6 100644 --- a/files/zh-cn/web/api/text/splittext/index.html +++ b/files/zh-cn/web/api/text/splittext/index.html @@ -12,9 +12,9 @@

      Text.splitText() 方法可以根据指定的偏移量将一个 {{domxref("Text")}} 节点分割成前后两个独立的兄弟节点。

      -

      如果指定的偏移量刚好等于原文本节点所包含字符串的长度,则返回一个内容为空的文本节点.

      +

      如果指定的偏移量刚好等于原文本节点所包含字符串的长度,则返回一个内容为空的文本节点。

      -

      分割后的文本节点还可以使用Node.normalize方法来合并.

      +

      分割后的文本节点还可以使用Node.normalize方法来合并。

      语法

      @@ -39,9 +39,9 @@

      异常

      INDEX_SIZE_ERR
      -
      如果指定的偏移量小于0或者大于原文本节点中所包含字符串的长度,则抛出这个异常.
      +
      如果指定的偏移量小于 0 或者大于原文本节点中所包含字符串的长度,则抛出这个异常。
      NO_MODIFICATION_ALLOWED_ERR
      -
      如果,原文本节点只读,则抛出这个异常.
      +
      如果,原文本节点只读,则抛出这个异常。

      例子

      diff --git a/files/zh-cn/web/api/text/text/index.html b/files/zh-cn/web/api/text/text/index.html index 8d3edbbd3876b8..3f19c4827515b2 100644 --- a/files/zh-cn/web/api/text/text/index.html +++ b/files/zh-cn/web/api/text/text/index.html @@ -8,12 +8,12 @@ ---

      {{ Apiref("DOM")}}{{seeCompatTable}}

      -

       Text() 构造方法返回一个最新创建的{{domxref("Text")}} 对象,该对象带有可选参数 {{domxref("DOMString")}} 作为文本节点的文本内容(textual content)。

      +

       Text() 构造方法返回一个最新创建的{{domxref("Text")}} 对象,该对象带有可选参数 {{domxref("DOMString")}} 作为文本节点的文本内容 (textual content)。

      Syntax

      -
      text1 = new Text(); // 创建一个空的文本节点(text node),即它的textContent 为空字符
      -text2 = new Text("This is a text node");//该构造方法参数作为文本节点的textContent 的值。
      +
      text1 = new Text(); // 创建一个空的文本节点 (text node),即它的 textContent 为空字符
      +text2 = new Text("This is a text node");//该构造方法参数作为文本节点的 textContent 的值。
       

      Example

      diff --git a/files/zh-cn/web/api/text/wholetext/index.html b/files/zh-cn/web/api/text/wholetext/index.html index d071fc8013a4c6..d8cdbf8779ff07 100644 --- a/files/zh-cn/web/api/text/wholetext/index.html +++ b/files/zh-cn/web/api/text/wholetext/index.html @@ -13,50 +13,50 @@

      Syntax

      Notes and example

      -

      假设你的网页上有如下的简单文本(包括其中为了格式化代码而添加的一些空格), 其 DOM 节点 被储存在变量 para 中:

      +

      假设你的网页上有如下的简单文本 (包括其中为了格式化代码而添加的一些空格), 其 DOM 节点 被储存在变量 para 中:

      <p>Thru-hiking is great!  <strong>No insipid election coverage!</strong>
         However, <a href="http://en.wikipedia.org/wiki/Absentee_ballot">casting a
         ballot</a> is tricky.</p>
       
      -

      你觉得你不喜欢中间的句子, 所以你移除了它:

      +

      你觉得你不喜欢中间的句子,所以你移除了它:

      para.removeChild(para.childNodes[1]);
       
      -

      过了一会, 你又决定给“Thru-hiking is great, but casting a ballot is tricky.”这句换个说法, 同时保留超链接。 所以你尝试以下代码:

      +

      过了一会,你又决定给“Thru-hiking is great, but casting a ballot is tricky.”这句换个说法, 同时保留超链接。所以你尝试以下代码:

      para.firstChild.data = "Thru-hiking is great, but ";
       
      -

      一切妥当, 是么? 不! 这会使你移除 strong 元素, 而被删掉的句子分隔了两个文本节点. 一个是第一句, 一个是最后一个单词. 相反, 你现在获得如下效果:

      +

      一切妥当,是么?不! 这会使你移除 strong 元素,而被删掉的句子分隔了两个文本节点。一个是第一句,一个是最后一个单词。相反,你现在获得如下效果:

      <p>Thru-hiking is great, but However, <a
         href="http://en.wikipedia.org/wiki/Absentee_ballot">casting a
         ballot</a> is tricky.</p>
       
      -

      实际上,你更倾向于将这些相邻扽文本节点作为同一文本节点. 这就是 wholeText 的用武之地:如果你有许多相邻的文本节点, 你可以通过wholeText访问这些节点里的所有内容。让我们假设你从未犯过最后一个错误. 在这种情况下, 我们有:

      +

      实际上,你更倾向于将这些相邻扽文本节点作为同一文本节点。这就是 wholeText 的用武之地:如果你有许多相邻的文本节点,你可以通过wholeText访问这些节点里的所有内容。让我们假设你从未犯过最后一个错误。在这种情况下,我们有:

      assert(para.firstChild.wholeText == "Thru-hiking is great!    However, ");
       
      -

      wholeText 只是文本节点的一个属性,特可以返回连接了所有相邻(i.e. 没有被其它元素边界分开) 文本节点数据的字符串 。

      +

      wholeText 只是文本节点的一个属性,特可以返回连接了所有相邻 (i.e. 没有被其它元素边界分开) 文本节点数据的字符串。

      -

      现在让我们回到最初的问题. 我们想做的是用新的文本替代旧的文本. 这就是 {{domxref("Text.replaceWholeText", "replaceWholeText()")}} 用处所在:

      +

      现在让我们回到最初的问题。我们想做的是用新的文本替代旧的文本。这就是 {{domxref("Text.replaceWholeText", "replaceWholeText()")}} 用处所在:

      para.firstChild.replaceWholeText("Thru-hiking is great, but ");
       
      -

      我们移除了所有的相邻文本节点 (所有构成whole text的文本节点) 除了调用replaceWholeText() 的,并且把剩余的文本改成了新文本. 我们现在所得到的是这样的:

      +

      我们移除了所有的相邻文本节点 (所有构成 whole text 的文本节点) 除了调用replaceWholeText() 的,并且把剩余的文本改成了新文本。我们现在所得到的是这样的:

      <p>Thru-hiking is great, but <a
         href="http://en.wikipedia.org/wiki/Absentee_ballot">casting a
         ballot</a> is tricky.</p>
       
      -

      有时候使用whole-text 功能同时使用Node.textContent 或长期支持的 {{domxref("Element.innerHTML")}}; 可以得到更好的处理。如果你需要处理一个元素内的混合内容, 正如本文所介绍的, wholeTextreplaceWholeText() 是有用的。

      +

      有时候使用 whole-text 功能同时使用Node.textContent 或长期支持的 {{domxref("Element.innerHTML")}}; 可以得到更好的处理。如果你需要处理一个元素内的混合内容,正如本文所介绍的,wholeTextreplaceWholeText() 是有用的。

      Specifications

      diff --git a/files/zh-cn/web/api/textdecoder/index.html b/files/zh-cn/web/api/textdecoder/index.html index 9c4188e7640ef9..a762f90d6865b8 100644 --- a/files/zh-cn/web/api/textdecoder/index.html +++ b/files/zh-cn/web/api/textdecoder/index.html @@ -33,9 +33,9 @@

      用类型化数组表示文本

      console.log(utf8decoder.decode(i16arr)); console.log(utf8decoder.decode(i32arr));
      -

      处理非UTF8文本

      +

      处理非 UTF8 文本

      -

      在此示例中,我们对俄语文本“Привет,мир!”( "Hello, world.")进行解码。在我们的 {{domxref("TextDecoder/TextDecoder", "TextDecoder()")}} 构造函数中,我们指定Windows-1251字符编码,适用于西里尔字母。

      +

      在此示例中,我们对俄语文本“Привет,мир!”( "Hello, world.") 进行解码。在我们的 {{domxref("TextDecoder/TextDecoder", "TextDecoder()")}} 构造函数中,我们指定 Windows-1251 字符编码,适用于西里尔字母。

      let win1251decoder = new TextDecoder('windows-1251');
       let bytes = new Uint8Array([207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33]);
      @@ -102,8 +102,8 @@ 

      相关链接

      diff --git a/files/zh-cn/web/api/textencoder/textencoder/index.html b/files/zh-cn/web/api/textencoder/textencoder/index.html index e88c69c1b96477..c661a7d783750e 100644 --- a/files/zh-cn/web/api/textencoder/textencoder/index.html +++ b/files/zh-cn/web/api/textencoder/textencoder/index.html @@ -25,12 +25,12 @@

      参数

    • TextEncoder() 从 Firefox 48 and Chrome 53 开始不再需要参数
    -

    Note: 在Firefox 48和Chrome 53之前,编码类型标签被接受为TextEncoder对象的参数,现在这两个浏览器已经删除了除utf-8之外的任何编码器类型的支持,以符合规范。 传入TextEncoder构造函数的任何类型标签现在都将被忽略,并且将创建一个utf-8 TextEncoder。

    +

    Note: 在 Firefox 48 和 Chrome 53 之前,编码类型标签被接受为 TextEncoder 对象的参数,现在这两个浏览器已经删除了除 utf-8 之外的任何编码器类型的支持,以符合规范。传入 TextEncoder 构造函数的任何类型标签现在都将被忽略,并且将创建一个 utf-8 TextEncoder。

      -
    • 旧的参数:
    • +
    • 旧的参数:
    diff --git a/files/zh-cn/web/api/textrange/index.html b/files/zh-cn/web/api/textrange/index.html index 76fe1cbc1aff7e..2a3294e97acfa8 100644 --- a/files/zh-cn/web/api/textrange/index.html +++ b/files/zh-cn/web/api/textrange/index.html @@ -11,13 +11,13 @@

    IE Only

    -该属性是IE专有的。尽管IE很好地支持它,但大部分其它浏览器已经不支持该属性。该属性仅应在需兼容低版本IE时作为其中一种方案,而不是在跨浏览器的脚本中完全依赖它。
    +该属性是 IE 专有的。尽管 IE 很好地支持它,但大部分其它浏览器已经不支持该属性。该属性仅应在需兼容低版本 IE 时作为其中一种方案,而不是在跨浏览器的脚本中完全依赖它。

    TextRange 对象表示文档中的文本片段,类似于标准定义的 {{domxref("Range")}} 接口。

    -

    此对象用于表示文档中特定的一段文本,例如在按住鼠标选中页面上的内容时,创建出的就是一个较为典型的 TextRange。它在IE中被实现,可通过 {{domxref("Element.createTextRange()")}} 方法或是 {{domxref("MSSelection.createRange()")}} 方法创建一个 TextRange 对象。

    +

    此对象用于表示文档中特定的一段文本,例如在按住鼠标选中页面上的内容时,创建出的就是一个较为典型的 TextRange。它在 IE 中被实现,可通过 {{domxref("Element.createTextRange()")}} 方法或是 {{domxref("MSSelection.createRange()")}} 方法创建一个 TextRange 对象。

    -

    注意,在非IE浏览器不支持该接口,可使用替代的 {{domxref("Selection")}} 及 {{domxref("Range")}} 接口。

    +

    注意,在非 IE 浏览器不支持该接口,可使用替代的 {{domxref("Selection")}} 及 {{domxref("Range")}} 接口。

    属性

    @@ -33,7 +33,7 @@

    属性

    {{domxref("TextRange.boundingWidth")}}{{ReadOnlyInline}}
    返回绑定 TextRange 对象的矩形的宽度。
    {{domxref("TextRange.htmlText")}}
    -
    获取或设置 TextRange 内的HTML内容。
    +
    获取或设置 TextRange 内的 HTML 内容。
    {{domxref("TextRange.text")}}
    获取或设置 TextRange 内的纯文本内容。
    @@ -42,7 +42,7 @@

    方法

    {{domxref("TextRange.collapse()")}}
    -
    将插入光标(Caret)移动到当前范围的开始或结尾。
    +
    将插入光标 (Caret) 移动到当前范围的开始或结尾。
    {{domxref("TextRange.duplicate()")}}
    返回 TextRange 的副本。
    {{domxref("TextRange.execCommand()")}}
    @@ -56,7 +56,7 @@

    方法

    {{domxref("TextRange.isEqual()")}}
    返回当前区域是否与指定区域相等。
    {{domxref("TextRange.move()")}}
    -
    将区域折叠(collapse),并将空白区域移动指定单位数。如 move("character",-1) 表示向左移动一个字符。
    +
    将区域折叠 (collapse),并将空白区域移动指定单位数。如 move("character",-1) 表示向左移动一个字符。
    {{domxref("TextRange.moveEnd()")}}
    将区域的结束位置移动指定单位数。
    {{domxref("TextRange.moveStart()")}}
    @@ -66,7 +66,7 @@

    方法

    {{domxref("TextRange.parentElement()")}}
    返回区域的父元素,也就是完全包含区域的最小元素。如果选区包含多个元素,则当修改选区的内容时,内容将放置在该父元素的对应位置中,而不是放在子元素中。
    {{domxref("TextRange.pasteHTML()")}}
    -
    将HTML内容粘贴入给定范围,并替换范围内任何先前的文本和 HTML 元素。
    +
    将 HTML 内容粘贴入给定范围,并替换范围内任何先前的文本和 HTML 元素。
    {{domxref("TextRange.queryCommandEnabled()")}}
    返回表明指定命令是否可于给定文档当前状态下使用 execCommand 命令成功执行的 {{jsxref("Boolean")}} 值。参见 {{domxref("Document.queryCommandEnabled()")}}。
    {{domxref("TextRange.queryCommandState()")}}
    @@ -74,7 +74,7 @@

    方法

    {{domxref("TextRange.queryCommandValue()")}}
    返回表明指定命令当前值的 {{domxref("DOMString")}}。参见 {{domxref("Document.queryCommandValue()")}}。
    {{domxref("TextRange.scrollIntoView()")}}
    -
    将区域滚动到可视范围内(顶部或底部)。可作为 {{domxref("Element.scrollIntoView")}} 在低版本IE下的一种替代方法。
    +
    将区域滚动到可视范围内(顶部或底部)。可作为 {{domxref("Element.scrollIntoView")}} 在低版本 IE 下的一种替代方法。
    {{domxref("TextRange.select()")}}
    将当前区域选中(即用户看到的蓝色选区)。
    {{domxref("TextRange.setEndPoint()")}}
    @@ -83,7 +83,7 @@

    方法

    示例

    -

    以下示例在IE10以下有效。该示例通过 document.selection 获取 TextRange,并设置选中指定的元素。IE9以上支持标准的替代方案 {{domxref("Range")}}。

    +

    以下示例在 IE10 以下有效。该示例通过 document.selection 获取 TextRange,并设置选中指定的元素。IE9 以上支持标准的替代方案 {{domxref("Range")}}。

    var range = document.selection.createRange();
     var element = document.getElementById("test");
    @@ -106,7 +106,7 @@ 

    开发者笔记

    使用 TextRange 操作选中区域

    -

    仅在IE10以下有效。在浏览器允许的情况下,应优先使用 {{domxref("Selection")}} 接口。

    +

    仅在IE10 以下有效。在浏览器允许的情况下,应优先使用 {{domxref("Selection")}} 接口。

    {{domxref("document.selection")}} 属性返回一个非标准的 {{domxref("MSSelection")}} 对象,selection.createRange() 方法创建一个和当前选中区域一致的 TextRange 对象。

    @@ -120,11 +120,11 @@

    使用 TextRange 操作选中区

    selection 兼容性

    -

    document.selection 对象是 TextRange 的主要用途。该对象用于处理文档中被选中的区域,并且主要依靠使用 TextRange 接口实现。标准规定一个窗口/文档可能有多个不相邻选区,但只有Firefox实现通过 Ctrl 选中多个区域;IE中一般也只允许文档只存在一个被选中的 TextRange

    +

    document.selection 对象是 TextRange 的主要用途。该对象用于处理文档中被选中的区域,并且主要依靠使用 TextRange 接口实现。标准规定一个窗口/文档可能有多个不相邻选区,但只有 Firefox 实现通过 Ctrl 选中多个区域;IE 中一般也只允许文档只存在一个被选中的 TextRange

    -

    然而,在其它浏览器中,document 并不存在一个所谓 selection 属性——它们通过标准 Selection API 实现对选区的操作,也就是通过 window.getSelection() 方法获取 Selection 对象,并使用标准的 Range 对象对文本片段作出处理。IE11及之后的版本也放弃了 document.selection 对象而转为使用标准接口(尽管 TextRange 一直保留,但大多数情况下它已失去作用)。

    +

    然而,在其它浏览器中,document 并不存在一个所谓 selection 属性——它们通过标准 Selection API 实现对选区的操作,也就是通过 window.getSelection() 方法获取 Selection 对象,并使用标准的 Range 对象对文本片段作出处理。IE11 及之后的版本也放弃了 document.selection 对象而转为使用标准接口(尽管 TextRange 一直保留,但大多数情况下它已失去作用)。

    -

    这很容易引起迷惑。通常,如果脚本只要求兼容最新的浏览器,那么标准的接口是最佳的选择;但通常目前的网站仍希望兼容IE8或其以下的浏览器,因此,最好的做法是同时处理两者,也就是在不支持标准接口时尝试使用 TextRange 方式,但不要把该方式作为唯一的选择。

    +

    这很容易引起迷惑。通常,如果脚本只要求兼容最新的浏览器,那么标准的接口是最佳的选择;但通常目前的网站仍希望兼容 IE8 或其以下的浏览器,因此,最好的做法是同时处理两者,也就是在不支持标准接口时尝试使用 TextRange 方式,但不要把该方式作为唯一的选择。

    浏览器兼容性

    @@ -139,7 +139,7 @@

    浏览器兼容性

    - + diff --git a/files/zh-cn/web/api/texttrack/cuechange_event/index.html b/files/zh-cn/web/api/texttrack/cuechange_event/index.html index a0753d67187f27..ff4ef46b96c347 100644 --- a/files/zh-cn/web/api/texttrack/cuechange_event/index.html +++ b/files/zh-cn/web/api/texttrack/cuechange_event/index.html @@ -21,7 +21,7 @@

    语法

    var handlerFunction = element.oncuechange; -

    handlerFunction 可以为 null,也可以是一个处理指定事件的JavaScript函数

    +

    handlerFunction 可以为 null,也可以是一个处理指定事件的JavaScript 函数

    规范

    @@ -48,5 +48,5 @@

    查看更多

    diff --git a/files/zh-cn/web/api/timeranges/end/index.html b/files/zh-cn/web/api/timeranges/end/index.html index 9bd1ac8b141a99..c199262c17dc35 100644 --- a/files/zh-cn/web/api/timeranges/end/index.html +++ b/files/zh-cn/web/api/timeranges/end/index.html @@ -27,7 +27,7 @@

    异常

    示例

    -

    假定页面中存在一个ID为“myVideo”的 video 元素:

    +

    假定页面中存在一个 ID 为“myVideo”的 video 元素:

    var v = document.getElementById("myVideo");
     
    diff --git a/files/zh-cn/web/api/timeranges/index.html b/files/zh-cn/web/api/timeranges/index.html
    index 8e2ae1d761dd4c..70e02e5d387fc7 100644
    --- a/files/zh-cn/web/api/timeranges/index.html
    +++ b/files/zh-cn/web/api/timeranges/index.html
    @@ -17,7 +17,7 @@ 

    属性

    {{domxref("TimeRanges.length")}} {{ReadOnlyInline}}
    -
    返回一个 unsigned long 类型的数字。表示由time range对象表示的time ranges的数量。
    +
    返回一个 unsigned long 类型的数字。表示由 time range 对象表示的 time ranges 的数量。

    方法

    diff --git a/files/zh-cn/web/api/timeranges/length/index.html b/files/zh-cn/web/api/timeranges/length/index.html index 1fac25738a989b..610b9922eec70a 100644 --- a/files/zh-cn/web/api/timeranges/length/index.html +++ b/files/zh-cn/web/api/timeranges/length/index.html @@ -14,7 +14,7 @@

    语法

    示例

    -

    假定页面中存在一个ID为“myVideo”的 video 元素:

    +

    假定页面中存在一个 ID 为“myVideo”的 video 元素:

    var v = document.GetElementById("myVideo");
     
    diff --git a/files/zh-cn/web/api/timeranges/start/index.html b/files/zh-cn/web/api/timeranges/start/index.html
    index 085f1de8637876..461083f723cb7d 100644
    --- a/files/zh-cn/web/api/timeranges/start/index.html
    +++ b/files/zh-cn/web/api/timeranges/start/index.html
    @@ -27,7 +27,7 @@ 

    异常

    示例

    -

    假定页面中存在一个ID为“myVideo”的 video 元素:

    +

    假定页面中存在一个 ID 为“myVideo”的 video 元素:

    var v = document.getElementById("myVideo");
     
    diff --git a/files/zh-cn/web/api/touch/clientx/index.html b/files/zh-cn/web/api/touch/clientx/index.html
    index c53bd741dc8096..f30f8b981af42d 100644
    --- a/files/zh-cn/web/api/touch/clientx/index.html
    +++ b/files/zh-cn/web/api/touch/clientx/index.html
    @@ -7,7 +7,7 @@
     ---
     

    {{ ApiRef() }}

    概述

    -

    返回触点相对于可见视区 (visual viewport) 左边沿的的 X 坐标。不包括任何滚动偏移.这个值会根据用户对可见视区的缩放行为而发生变化。

    +

    返回触点相对于可见视区 (visual viewport) 左边沿的的 X 坐标。不包括任何滚动偏移。这个值会根据用户对可见视区的缩放行为而发生变化。

    语法

    var x = touchItem.clientX;
     
    diff --git a/files/zh-cn/web/api/touch/clienty/index.html b/files/zh-cn/web/api/touch/clienty/index.html index 587653dff75ac6..5809f8a38f4a05 100644 --- a/files/zh-cn/web/api/touch/clienty/index.html +++ b/files/zh-cn/web/api/touch/clienty/index.html @@ -5,7 +5,7 @@ ---

    {{ ApiRef() }}

    概述

    -

    返回触点相对于可见视区 (visual viewport) 上边沿的的 Y 坐标。不包括任何滚动偏移.这个值会根据用户对可见视区的缩放行为而发生变化。

    +

    返回触点相对于可见视区 (visual viewport) 上边沿的的 Y 坐标。不包括任何滚动偏移。这个值会根据用户对可见视区的缩放行为而发生变化。

    语法

    var y = touchItem.clientY;
     
    diff --git a/files/zh-cn/web/api/touch/index.html b/files/zh-cn/web/api/touch/index.html index ed3d8bc9953237..1fa637af79eeb3 100644 --- a/files/zh-cn/web/api/touch/index.html +++ b/files/zh-cn/web/api/touch/index.html @@ -33,7 +33,7 @@

    基本属性

    {{ domxref("Touch.identifier") }}{{readonlyInline}}
    -
    Touch 对象的唯一标识符。 一次触摸动作 (例如手指触摸) 在平面上移动的整个过程中,该标识符不变。可以根据它来判断跟踪的是否是同一次触摸过程。
    +
    Touch 对象的唯一标识符。一次触摸动作 (例如手指触摸) 在平面上移动的整个过程中,该标识符不变。可以根据它来判断跟踪的是否是同一次触摸过程。
    {{ domxref("Touch.screenX") }}{{readonlyInline}}
    触点相对于屏幕左边缘的 X 坐标。
    {{ domxref("Touch.screenY") }}{{readonlyInline}}
    diff --git a/files/zh-cn/web/api/transitionevent/index.html b/files/zh-cn/web/api/transitionevent/index.html index 2da368bfaf6d6f..303ec554028a74 100644 --- a/files/zh-cn/web/api/transitionevent/index.html +++ b/files/zh-cn/web/api/transitionevent/index.html @@ -9,13 +9,13 @@

    属性

    -

    同时也继承了父类 {{domxref("Event")}} 的属性.

    +

    同时也继承了父类 {{domxref("Event")}} 的属性。

    {{domxref("TransitionEvent.propertyName")}} {{readonlyInline}}
    -
    是一个{{domxref("DOMString")}},代表与这个 transition 有关的 CSS 属性名.
    +
    是一个{{domxref("DOMString")}},代表与这个 transition 有关的 CSS 属性名。
    {{domxref("TransitionEvent.elapsedTime")}} {{readonlyInline}}
    -
    是一个 float 值,代表从这个事件触发开始,这个 transition 运行的时间(以秒为单位)。这个值不受 {{cssxref("transition-delay")}} 属性的影响.
    +
    是一个 float 值,代表从这个事件触发开始,这个 transition 运行的时间(以秒为单位)。这个值不受 {{cssxref("transition-delay")}} 属性的影响。
    {{domxref("TransitionEvent.pseudoElement")}} {{readonlyInline}}
    是一个以 '::' 开头的 {{domxref("DOMString")}}, 代表这个过渡运行于其上的伪元素的名字。如果这个过渡不是在一个伪元素上而是在一个元素上运行的,这个值就是一个空值''。
    @@ -29,7 +29,7 @@

    构造函数

    方法

    -

    同时也继承了父类 {{domxref("Event")}}的方法.

    +

    同时也继承了父类 {{domxref("Event")}}的方法。

    {{domxref("TransitionEvent.initTransitionEvent()")}} {{non-standard_inline}}{{deprecated_inline}}
    diff --git a/files/zh-cn/web/api/ui_events/keyboard_event_key_values/index.html b/files/zh-cn/web/api/ui_events/keyboard_event_key_values/index.html index 937931beca2252..ab433f387f7c93 100644 --- a/files/zh-cn/web/api/ui_events/keyboard_event_key_values/index.html +++ b/files/zh-cn/web/api/ui_events/keyboard_event_key_values/index.html @@ -33,7 +33,7 @@

    Special values

    - + @@ -44,7 +44,7 @@

    Special values

    Modifier keys

    -

    修饰符是特殊键,用于生成特殊字符或与其他键组合使用时产生特殊操作。 示例包括ShiftControl键,以及Lock LockNumLock等锁定键。

    +

    修饰符是特殊键,用于生成特殊字符或与其他键组合使用时产生特殊操作。示例包括ShiftControl键,以及Lock LockNumLock等锁定键。

    {{event('pointerout')}} {{domxref('GlobalEventHandlers.onpointerout','onpointerout')}}可能由若干原因触发该事件,包括:定位设备移出了某命中检测的边界;不支持悬浮状态的设备发生 pointerup 事件(见 pointerup 事件); 作为 pointercancel event 事件的后续事件(见 pointercancel 事件);当数位板检测到数位笔离开了悬浮区域时。可能由若干原因触发该事件,包括:定位设备移出了某命中检测的边界;不支持悬浮状态的设备发生 pointerup 事件(见 pointerup 事件);作为 pointercancel event 事件的后续事件(见 pointercancel 事件);当数位板检测到数位笔离开了悬浮区域时。
    {{event('pointerleave')}}
    target {{readonlyInline}} {{domxref("EventTarget")}}事件目标(DOM树的最顶端)事件目标(DOM 树的最顶端)
    type {{readonlyInline}}
    {{domxref("TextRange")}} {{non-standard_inline()}}支持(IE9后应使用标准API)支持 (IE9 后应使用标准 API) 不支持(详见Selection API
    "Unidentified"用户代理无法将事件的虚拟键码映射到特定键值。 这可能由于硬件或软件限制或由于运行用户代理的平台周围的约束而发生。用户代理无法将事件的虚拟键码映射到特定键值。这可能由于硬件或软件限制或由于运行用户代理的平台周围的约束而发生。 varies varies varies
    @@ -75,7 +75,7 @@

    Modifier keys

    - + - + - + @@ -114,7 +114,7 @@

    Modifier keys

    - + @@ -122,7 +122,7 @@

    Modifier keys

    - + @@ -141,7 +141,7 @@

    Modifier keys

    - + - +
    "AltGraph" [5]AltGrAltGraph(Alternate Graphics)键。 启用 ISO Level 3 移位修改器(其中Shift是 2 级修改器)。AltGrAltGraph(Alternate Graphics)键。启用 ISO Level 3 移位修改器(其中Shift是 2 级修改器)。 GDK_KEY_Mode_switch (0xFF7E)
    @@ -91,7 +91,7 @@

    Modifier keys

    "CapsLock"大写锁定键。 打开和关闭大写字符锁以进行后续输入。大写锁定键。打开和关闭大写字符锁以进行后续输入。 VK_CAPITAL (0x14) kVK_CapsLock (0x39) GDK_KEY_Caps_Lock (0xFFE5)
    @@ -100,7 +100,7 @@

    Modifier keys

    "Control"ControlCtrlCtrl键。 允许输入控制字符。ControlCtrlCtrl键。允许输入控制字符。 VK_CONTROL (0x11)
    VK_LCONTROL (0xA2)
    VK_RCONTROL (0xA3)
    "Fn"Fn(函数修饰符)键。 用于允许在没有专用功能键区域的键盘上生成功能键(例如F1-F15)字符。 通常在硬件中处理,以便不为此密钥生成事件。Fn(函数修饰符)键。用于允许在没有专用功能键区域的键盘上生成功能键(例如F1-F15)字符。通常在硬件中处理,以便不为此密钥生成事件。 kVK_Function (0x3F)
    "FnLock"FnLockF-Lock(功能锁定)键。打开和关闭“Fn”描述的功能键模式。 通常在硬件中处理,以便不为此密钥生成事件。FnLockF-Lock(功能锁定)键。打开和关闭“Fn”描述的功能键模式。通常在硬件中处理,以便不为此密钥生成事件。
    "Meta" [1]Meta键。 允许发出特殊命令输入。 这是Windows徽标键,或Mac键盘上的Command或⌘键。Meta键。允许发出特殊命令输入。这是Windows徽标键,或Mac键盘上的Command或⌘键。 VK_LWIN (0x5B)
    VK_RWIN (0x5C)
    kVK_Command (0x37)
    diff --git a/files/zh-cn/web/api/uievent/detail/index.html b/files/zh-cn/web/api/uievent/detail/index.html index 0fec560aeaa509..f3c7da3351be50 100644 --- a/files/zh-cn/web/api/uievent/detail/index.html +++ b/files/zh-cn/web/api/uievent/detail/index.html @@ -5,7 +5,7 @@ ---

    {{APIRef("DOM Events")}}

    -

    UIEvent.detail 是只读属性, 当值为非空的时候,提供当前点击数 (和环境有关) 。

    +

    UIEvent.detail 是只读属性,当值为非空的时候,提供当前点击数 (和环境有关) 。

    对 {{event("click")}} 或者 {{event("dblclick")}} 事件,UIEvent.detail 是当前点击数量。

    diff --git a/files/zh-cn/web/api/uievent/uievent/index.html b/files/zh-cn/web/api/uievent/uievent/index.html index def335bb6c716c..0eb773fc534157 100644 --- a/files/zh-cn/web/api/uievent/uievent/index.html +++ b/files/zh-cn/web/api/uievent/uievent/index.html @@ -23,7 +23,7 @@

    Values

    是 UIEventInit 集合,它拥有以下属性:
      -
    • detail: 可选,默认为 long 类型的 0 数值, 用来标记事件的关联值. {{domxref("UIEvent.detail")}} 列出了标准事件的语义。
    • +
    • detail: 可选,默认为 long 类型的 0 数值, 用来标记事件的关联值。{{domxref("UIEvent.detail")}} 列出了标准事件的语义。
    • view: 可选,默认为 null,类型为 {{domxref("WindowProxy")}}, 用来关联{{domxref("Window")}} 与 event 本身。
    • sourceCapabilities: {{non-standard_inline}} 一个 {{domxref("InputDeviceCapabilities")}} 类型的接口实例 (对象),用来提供物理设备的触摸信息。
    diff --git a/files/zh-cn/web/api/url/index.html b/files/zh-cn/web/api/url/index.html index 85658f54637692..ab20c8a91194aa 100644 --- a/files/zh-cn/web/api/url/index.html +++ b/files/zh-cn/web/api/url/index.html @@ -5,9 +5,9 @@ ---
    {{APIRef("URL API")}}
    -

    URL接口用于解析,构造,规范化和编码 {{glossary("URL", "URLs")}}。 它通过提供允许您轻松阅读和修改 URL 组件的属性来工作。 通常,通过在调用 URL 的构造函数时将 URL 指定为字符串或提供相对 URL 和基本 URL 来创建新的 URL 对象。 然后,您可以轻松读取 URL 的已解析组成部分或对 URL 进行更改。

    +

    URL接口用于解析,构造,规范化和编码 {{glossary("URL", "URLs")}}。它通过提供允许您轻松阅读和修改 URL 组件的属性来工作。通常,通过在调用 URL 的构造函数时将 URL 指定为字符串或提供相对 URL 和基本 URL 来创建新的 URL 对象。然后,您可以轻松读取 URL 的已解析组成部分或对 URL 进行更改。

    -

    如果浏览器尚不支持{{domxref("URL.URL", "URL()")}}构造函数,则可以使用{{domxref("Window")}}中的{{domxref("Window.URL")}}属性。 确保检查您的任何目标浏览器是否要求对此添加前缀。

    +

    如果浏览器尚不支持{{domxref("URL.URL", "URL()")}}构造函数,则可以使用{{domxref("Window")}}中的{{domxref("Window.URL")}}属性。确保检查您的任何目标浏览器是否要求对此添加前缀。

    {{AvailableInWorkers}}

    @@ -40,7 +40,7 @@

    属性

    {{domxref("URL.protocol", "protocol")}}
    包含 URL 协议名的 {{domxref("USVString")}},末尾带 ':'。
    {{domxref("URL.search", "search")}}
    -
    一个{{domxref("USVString")}} ,指示 URL 的参数字符串; 如果提供了任何参数,则此字符串包括所有参数,并以开头的“?”开头 字符。
    +
    一个{{domxref("USVString")}} ,指示 URL 的参数字符串;如果提供了任何参数,则此字符串包括所有参数,并以开头的“?”开头 字符。
    {{domxref("URL.searchParams", "searchParams")}} {{readonlyInline}}
    {{domxref("URLSearchParams")}}对象,可用于访问search中找到的各个查询参数。
    {{domxref("URL.username","username")}}
    @@ -54,9 +54,9 @@

    方法

    {{domxref("URL.toString", "toString()")}}
    -
    返回包含整个 URL 的{{domxref("USVString")}}。 它是{{domxref("URL.href")}}的同义词,尽管它不能用于修改值。
    +
    返回包含整个 URL 的{{domxref("USVString")}}。它是{{domxref("URL.href")}}的同义词,尽管它不能用于修改值。
    {{domxref("URL.toJSON", "toJSON()")}}
    -
    返回包含整个 URL 的{{domxref("USVString")}}。 它返回与href属性相同的字符串。
    +
    返回包含整个 URL 的{{domxref("USVString")}}。它返回与href属性相同的字符串。

    静态方法

    @@ -83,7 +83,7 @@

    使用说明

    console.log(url.href); // "http://www.example.com/cats#tabby" -

    URL 根据 {{RFC(3986)}}中的规则进行编码。 例如:

    +

    URL 根据 {{RFC(3986)}}中的规则进行编码。例如:

    url.pathname = 'démonstration.html';
     console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html"
    diff --git a/files/zh-cn/web/api/url/search/index.html b/files/zh-cn/web/api/url/search/index.html
    index aeb031cebb3ee5..61701dab12e6bc 100644
    --- a/files/zh-cn/web/api/url/search/index.html
    +++ b/files/zh-cn/web/api/url/search/index.html
    @@ -11,7 +11,7 @@
     ---
     
    {{ApiRef("URL API")}}
    -

    {{domxref("URL")}} 接口的search 属性是一个搜索字符串, 也称为查询字符串,这是一个{{domxref("USVString")}}包含一个 '?'后面跟着 URL 的参数

    +

    {{domxref("URL")}} 接口的search 属性是一个搜索字符串,也称为查询字符串,这是一个{{domxref("USVString")}}包含一个 '?'后面跟着 URL 的参数

    现代浏览器提供{{domxref("URL.searchParams")}}属性,以便轻松解析查询字符串中的参数。

    diff --git a/files/zh-cn/web/api/urlsearchparams/append/index.html b/files/zh-cn/web/api/urlsearchparams/append/index.html index f829ebf20a335c..f839adde3f845b 100644 --- a/files/zh-cn/web/api/urlsearchparams/append/index.html +++ b/files/zh-cn/web/api/urlsearchparams/append/index.html @@ -31,7 +31,7 @@

    例子

    //添加第二个 foo 搜索参数。 params.append('foo', 4); -//查询字符串变成: 'foo=1&bar=2&foo=4'
    +//查询字符串变成:'foo=1&bar=2&foo=4'

    说明

    @@ -59,6 +59,6 @@

    浏览器兼容性

    参见

    diff --git a/files/zh-cn/web/api/urlsearchparams/entries/index.html b/files/zh-cn/web/api/urlsearchparams/entries/index.html index 0b635a0910ca8c..3a739cf54fa5b0 100644 --- a/files/zh-cn/web/api/urlsearchparams/entries/index.html +++ b/files/zh-cn/web/api/urlsearchparams/entries/index.html @@ -53,5 +53,5 @@

    浏览器兼容性

    另请参阅

      -
    • 其他 URL 相关接口: {{domxref("URL")}}, {{domxref("URLUtils")}}.
    • +
    • 其他 URL 相关接口:{{domxref("URL")}}, {{domxref("URLUtils")}}.
    diff --git a/files/zh-cn/web/api/urlsearchparams/keys/index.html b/files/zh-cn/web/api/urlsearchparams/keys/index.html index 2b58c21da2f2b4..72aa94bd1e0181 100644 --- a/files/zh-cn/web/api/urlsearchparams/keys/index.html +++ b/files/zh-cn/web/api/urlsearchparams/keys/index.html @@ -53,5 +53,5 @@

    浏览器兼容性

    另请参考

      -
    • 其他 URL 相关接口: {{domxref("URL")}}, {{domxref("URLUtils")}}.
    • +
    • 其他 URL 相关接口:{{domxref("URL")}}, {{domxref("URLUtils")}}.
    diff --git a/files/zh-cn/web/api/urlsearchparams/values/index.html b/files/zh-cn/web/api/urlsearchparams/values/index.html index 53aa2d01e11033..b104bfbe833ad3 100644 --- a/files/zh-cn/web/api/urlsearchparams/values/index.html +++ b/files/zh-cn/web/api/urlsearchparams/values/index.html @@ -53,5 +53,5 @@

    浏览器兼容性

    另请参考

      -
    • 其他 URL 相关接口: {{domxref("URL")}}, {{domxref("URLUtils")}}.
    • +
    • 其他 URL 相关接口:{{domxref("URL")}}, {{domxref("URLUtils")}}.
    diff --git a/files/zh-cn/web/api/vibration_api/index.html b/files/zh-cn/web/api/vibration_api/index.html index ba8699571495dc..33ba1f516497c9 100644 --- a/files/zh-cn/web/api/vibration_api/index.html +++ b/files/zh-cn/web/api/vibration_api/index.html @@ -32,7 +32,7 @@

    振动模式

    这会使设备振动 200 ms,然后暂停 100 ms,然后再次振动设备 200 ms。

    -

    您可以根据需要设定多个振动/暂停对,数组的值可以是偶数或奇数个; 值得注意的是,由于振动在每个振动周期结束时自动停止,因此您不必提供最后一个值去暂停,换句话说,数组长度只需要设置奇数个。

    +

    您可以根据需要设定多个振动/暂停对,数组的值可以是偶数或奇数个;值得注意的是,由于振动在每个振动周期结束时自动停止,因此您不必提供最后一个值去暂停,换句话说,数组长度只需要设置奇数个。

    停止振动

    diff --git a/files/zh-cn/web/api/waveshapernode/curve/index.html b/files/zh-cn/web/api/waveshapernode/curve/index.html index 472d8c00d4603f..1e3866da4b3b1f 100644 --- a/files/zh-cn/web/api/waveshapernode/curve/index.html +++ b/files/zh-cn/web/api/waveshapernode/curve/index.html @@ -7,9 +7,9 @@

    {{ domxref("WaveShaperNode") }} 接口的 curve 属性是一个描述要被应用的畸变的{{domxref("Float32Array")}} 数组。

    -

    数组的中间元素被应用于每个信号数值 0, 第一个应用于信号数值 -1,最后一个应用于信号数值 1; 小于 -1 或者大于 1 的数值分别按照 -11 来处理。

    +

    数组的中间元素被应用于每个信号数值 0,第一个应用于信号数值 -1,最后一个应用于信号数值 1;小于 -1 或者大于 1 的数值分别按照 -11 来处理。

    -

    如有必要, 使用线性插值计算畸变曲线的中间值。

    +

    如有必要,使用线性插值计算畸变曲线的中间值。

    注意: 数组的值可以是 null : 在这个情况下,不会有畸变被应用到输入的信号上。

    diff --git a/files/zh-cn/web/api/waveshapernode/index.html b/files/zh-cn/web/api/waveshapernode/index.html index 186b6fb31a29f6..0b4ed1ff358b82 100644 --- a/files/zh-cn/web/api/waveshapernode/index.html +++ b/files/zh-cn/web/api/waveshapernode/index.html @@ -51,7 +51,7 @@

    属性

    {{domxref("WaveShaperNode.curve")}}
    是一个{{domxref("Float32Array")}}描述要应用的失真数值的数组。
    {{domxref("WaveShaperNode.oversample")}}
    -
    是一个描述是否必须使用过采样的枚举值。 过采样是一个用来在将失真效果应用到音频信号之前创建更多采样(上采样)的技术。
    +
    是一个描述是否必须使用过采样的枚举值。过采样是一个用来在将失真效果应用到音频信号之前创建更多采样(上采样)的技术。

    方法

    diff --git a/files/zh-cn/web/api/waveshapernode/oversample/index.html b/files/zh-cn/web/api/waveshapernode/oversample/index.html index 4f6f0a38bcc743..e70a237d9fb28e 100644 --- a/files/zh-cn/web/api/waveshapernode/oversample/index.html +++ b/files/zh-cn/web/api/waveshapernode/oversample/index.html @@ -5,9 +5,9 @@ ---

    {{ APIRef("Web Audio API") }}

    -

    {{ domxref("WaveShaperNode") }} 接口的 oversample 属性是一个指示过采样是否必须使用的枚举值。 过采样是一个用于在将畸变应用到音频信号之前创建更多的采样(上采样)的技术。

    +

    {{ domxref("WaveShaperNode") }} 接口的 oversample 属性是一个指示过采样是否必须使用的枚举值。过采样是一个用于在将畸变应用到音频信号之前创建更多的采样(上采样)的技术。

    -

    一旦被应用, 采样的数值会被还原为初始的数值。 这将通过避免一些混淆现象从而导致更好的结果, 代价则是在畸变曲线上会有较低的精确度。

    +

    一旦被应用,采样的数值会被还原为初始的数值。这将通过避免一些混淆现象从而导致更好的结果,代价则是在畸变曲线上会有较低的精确度。

     可用的oversample 值有:

    @@ -43,7 +43,7 @@

    • 畸变是一个{{domxref("WaveShaperNode")}}.
    • -
    • 枚举值'none''2x', 或 '4x'
    • +
    • 枚举值'none''2x',或 '4x'

    示例

    diff --git a/files/zh-cn/web/api/web_animations_api/index.html b/files/zh-cn/web/api/web_animations_api/index.html index 507fdbb2a0b876..89b2d0f9868c68 100644 --- a/files/zh-cn/web/api/web_animations_api/index.html +++ b/files/zh-cn/web/api/web_animations_api/index.html @@ -22,17 +22,17 @@

    网页动画接口

    {{domxref("Animation")}}
    -
    提供播放控制、动画节点或源的时间轴。 可以接受使用{{domxref("KeyframeEffect.KeyframeEffect")}}构造函数创建的对象作为参数。
    +
    提供播放控制、动画节点或源的时间轴。可以接受使用{{domxref("KeyframeEffect.KeyframeEffect")}}构造函数创建的对象作为参数。
    {{domxref("KeyframeEffect")}}
    -
    描述动画属性的集合,调用keyframes及{{domxref("Animation Effect Timing Properties")}}。 然后可以使用 {{domxref("Animation")}} 构造函数进行播放。
    +
    描述动画属性的集合,调用keyframes及{{domxref("Animation Effect Timing Properties")}}。然后可以使用 {{domxref("Animation")}} 构造函数进行播放。
    {{domxref("AnimationTimeline")}}
    -
    表示动画的时间轴。 此接口用以定义时间轴功能(继承自{{domxref("DocumentTimeline")}}和{{domxref("future timeline")}}),并且本身不被开发人员访问。
    +
    表示动画的时间轴。此接口用以定义时间轴功能(继承自{{domxref("DocumentTimeline")}}和{{domxref("future timeline")}}),并且本身不被开发人员访问。
    {{domxref("DocumentTimeline")}}
    表示动画时间轴,包括默认的{{domxref("DocumentTimeline")}}(通过{{domxref("Document.timeline")}}访问)。
    {{domxref("AnimationEffectTiming")}}
    -
    包含{{domxref("KeyframeEffect")}}的{{domxref("KeyframeEffect.timing", "timing")}}返回的定时属性对象。 它从{{domxref("AnimationEffectTimingReadOnly")}}继承其属性,但是以非只读形式。
    +
    包含{{domxref("KeyframeEffect")}}的{{domxref("KeyframeEffect.timing", "timing")}}返回的定时属性对象。它从{{domxref("AnimationEffectTimingReadOnly")}}继承其属性,但是以非只读形式。
    {{domxref("SharedKeyframeList")}}
    -
    表示可在{{domxref("KeyframeEffect")}}对象之间共享的关键帧序列。 通过使用该对象,多个{{domxref("KeyframeEffect")}}对象可以重用相同的关键帧,而无需支付多次解析它们的成本。
    +
    表示可在{{domxref("KeyframeEffect")}}对象之间共享的关键帧序列。通过使用该对象,多个{{domxref("KeyframeEffect")}}对象可以重用相同的关键帧,而无需支付多次解析它们的成本。
    {{domxref("AnimationEffectTimingProperties")}}
    {{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly()")}}和 {{domxref("KeyframeEffect.KeyframeEffect()")}}的定时属性对象。
    @@ -52,7 +52,7 @@

    扩展到 Document 的接

    扩展到 Element 的接口

    {{domxref("Element.animate()")}}
    -
    用于在元素上创建和播放动画的快捷方式。 它返回创建的{{domxref("Animation")}}对象实例。
    +
    用于在元素上创建和播放动画的快捷方式。它返回创建的{{domxref("Animation")}}对象实例。
    @@ -60,7 +60,7 @@

    扩展到 Element 的接口<

    Web 动画只读接口

    -

    规格中包括以下接口,用于定义在多个其他位置使用的功能。 你不会在 Web 开发工作中直接使用这些接口,但他们能帮助库或框架作者了解这些接口如何工作,使他们的库的实现可以更有效,或者浏览器工程师寻找一个比规范提供的内容更容易的参考。

    +

    规格中包括以下接口,用于定义在多个其他位置使用的功能。你不会在 Web 开发工作中直接使用这些接口,但他们能帮助库或框架作者了解这些接口如何工作,使他们的库的实现可以更有效,或者浏览器工程师寻找一个比规范提供的内容更容易的参考。

    {{domxref("AnimationEffectTimingReadOnly")}}
    diff --git a/files/zh-cn/web/api/web_animations_api/keyframe_formats/index.html b/files/zh-cn/web/api/web_animations_api/keyframe_formats/index.html index 165ef07b294fa7..da49d2e4b427be 100644 --- a/files/zh-cn/web/api/web_animations_api/keyframe_formats/index.html +++ b/files/zh-cn/web/api/web_animations_api/keyframe_formats/index.html @@ -102,7 +102,7 @@

    属性

    offset
    -

    关键帧的 offset 偏移量指定为介于0.01.0之间的数字或为null。 这相当于使用@keyframes在 CSS 样式表中以百分比指定开始和结束状态。 如果此值为null或缺失,则关键帧将在相邻关键帧之间均匀分布。

    +

    关键帧的 offset 偏移量指定为介于0.01.0之间的数字或为null。这相当于使用@keyframes在 CSS 样式表中以百分比指定开始和结束状态。如果此值为null或缺失,则关键帧将在相邻关键帧之间均匀分布。

    easing
    @@ -110,7 +110,7 @@

    属性

    composite
    -

    {{domxref("KeyframeEffect.composite")}} 操作用于将此关键帧中指定的值与基础值组合在一起。 如果正在使用在效果上指定的复合操作,则不会出现这种情况。

    +

    {{domxref("KeyframeEffect.composite")}} 操作用于将此关键帧中指定的值与基础值组合在一起。如果正在使用在效果上指定的复合操作,则不会出现这种情况。

    diff --git a/files/zh-cn/web/api/web_animations_api/using_the_web_animations_api/index.html b/files/zh-cn/web/api/web_animations_api/using_the_web_animations_api/index.html index 7bbc10b5ce1c2b..c82cb3ba9229ea 100644 --- a/files/zh-cn/web/api/web_animations_api/using_the_web_animations_api/index.html +++ b/files/zh-cn/web/api/web_animations_api/using_the_web_animations_api/index.html @@ -11,15 +11,15 @@

    认识 Web 动画 API

    Web 动画 API将浏览器动画引擎向开发者打开,并由 JavaScript 进行操作。这些 API 被设计成 CSS Animations and CSS Transitions的接口,未来会对这些 API 做补充以丰富更多的功能。它是对网络上动画化的支持最有效的方式之一,让浏览器进行自己的内部,不需要 hacks,或者强迫,或者{{domxref("Window.requestAnimationFrame()")}}。

    -

    通过 Web 动画 API,我们可以将交互式动画从样式表移动到 JavaScript,将表现与行为分开。 我们不再需要依赖 DOM 重的技术,如将 CSS 属性和范围类写入元素来控制播放方向。 与纯粹的声明式 CSS 不同,JavaScript 还允许我们动态地将属性值设置为持续时间。 对于构建自定义动画库和创建交互式动画,Web 动画 API 可能是完成工作的完美工具。 让我们看看它能做什么!

    +

    通过 Web 动画 API,我们可以将交互式动画从样式表移动到 JavaScript,将表现与行为分开。我们不再需要依赖 DOM 重的技术,如将 CSS 属性和范围类写入元素来控制播放方向。与纯粹的声明式 CSS 不同,JavaScript 还允许我们动态地将属性值设置为持续时间。对于构建自定义动画库和创建交互式动画,Web 动画 API 可能是完成工作的完美工具。让我们看看它能做什么!

    浏览器兼容情况

    -

    默认情况下,Firefox 48+ 和 Chrome 36+ 中提供了本文中讨论的基本 Web 动画 API 功能。 Webkit 和 Edge 已经将 API 移动到各自的待办事项列表中,但是直到我们看到所有浏览器都有完整的支持,所以有一个便于维护的 polyfill( handy maintained polyfill)可以测试功能支持,并在必要时添加它。

    +

    默认情况下,Firefox 48+ 和 Chrome 36+ 中提供了本文中讨论的基本 Web 动画 API 功能。Webkit 和 Edge 已经将 API 移动到各自的待办事项列表中,但是直到我们看到所有浏览器都有完整的支持,所以有一个便于维护的 polyfill( handy maintained polyfill)可以测试功能支持,并在必要时添加它。

    用 web 动画 API 写 css 动画

    -

    学习 Web 动画 API 的更为熟悉的方法之一是从大多数网络开发人员开始使用以前的 CSS 动画。 CSS 动画有一个熟悉的语法,很好地分解为演示目的。

    +

    学习 Web 动画 API 的更为熟悉的方法之一是从大多数网络开发人员开始使用以前的 CSS 动画。CSS 动画有一个熟悉的语法,很好地分解为演示目的。

    The CSS version

    @@ -27,7 +27,7 @@

    The CSS version

    Alice Tumbling down the rabbit's hole.

    -

    请注意背景的移动,爱丽丝的旋转,以及她的颜色偏移变化。 本教程我们将仅仅关注爱丽丝。 这是控制爱丽丝动画的简化的 CSS:

    +

    请注意背景的移动,爱丽丝的旋转,以及她的颜色偏移变化。本教程我们将仅仅关注爱丽丝。这是控制爱丽丝动画的简化的 CSS:

    #alice {
       animation: aliceTumbling infinite 3s linear;
    @@ -47,7 +47,7 @@ 

    The CSS version

    } }
    -

    这样可以以恒定的(线性 linear)速率在 3 秒内改变爱丽丝的颜色和变换的旋转,并无限循环。 在 @keyframes 块中,我们可以看到每个循环(约 0.9 秒)的 30%,Alice 的颜色从黑色变为深红色,然后在循环结束时再次返回。

    +

    这样可以以恒定的(线性 linear)速率在 3 秒内改变爱丽丝的颜色和变换的旋转,并无限循环。在 @keyframes 块中,我们可以看到每个循环(约 0.9 秒)的 30%,Alice 的颜色从黑色变为深红色,然后在循环结束时再次返回。

    Moving it to JavaScript

    @@ -63,13 +63,13 @@

    Representing keyframes

    { transform: 'rotate(360deg) translate3D(-50%, -50%, 0)', color: '#000' } ]; -

    这里我们使用一个包含多个对象的数组。 每个对象代表原始 CSS 中的一个键。 然而,与 CSS 不同,Web 动画 API 不需要明确地告知每个键出现的动画的百分比。 它将根据您给出的按键数量自动将动画划分为相等的部分。 这意味着具有三个键的关键帧对象将通过动画的每个循环的方式播放中间键,除非另有说明。

    +

    这里我们使用一个包含多个对象的数组。每个对象代表原始 CSS 中的一个键。然而,与 CSS 不同,Web 动画 API 不需要明确地告知每个键出现的动画的百分比。它将根据您给出的按键数量自动将动画划分为相等的部分。这意味着具有三个键的关键帧对象将通过动画的每个循环的方式播放中间键,除非另有说明。

    -

    当我们想要明确地设置一个键与其他键的偏移量时,我们可以直接在对象中指定一个偏移量,并与逗号分隔。 在上面的例子中,为了确保爱丽丝的颜色变化为 30%而不是 50%,我们给它的偏移量为 0.3。

    +

    当我们想要明确地设置一个键与其他键的偏移量时,我们可以直接在对象中指定一个偏移量,并与逗号分隔。在上面的例子中,为了确保爱丽丝的颜色变化为 30%而不是 50%,我们给它的偏移量为 0.3。

    必须至少指定两个关键帧(表示动画序列的开始和结束状态).如果您的关键帧列表只有一个条目,{{domxref("Element.animate()")}} 将抛出不支持的异常报错。

    -

    所以要回顾一下,除非你指定一个键上的偏移量,否则键的默认值是等间隔的。 方便吗?

    +

    所以要回顾一下,除非你指定一个键上的偏移量,否则键的默认值是等间隔的。方便吗?

    表示时间属性

    @@ -102,7 +102,7 @@

    整合这些特性

    And boom: the animation starts playing (see the finished version on Codepen).

    -

    可以在可以使用 CSS 动画化的任何 DOM 元素上调用 animate() 方法。 它可以用几种方式写成。 我们可以直接像这样传递他们的值,而不是为关键帧和时间属性制作对象:

    +

    可以在可以使用 CSS 动画化的任何 DOM 元素上调用 animate() 方法。它可以用几种方式写成。我们可以直接像这样传递他们的值,而不是为关键帧和时间属性制作对象:

    document.getElementById("alice").animate(
       [
    @@ -126,11 +126,11 @@ 

    整合这些特性

    使用 play(),pause(),reverse() 和 playbackRate 控制播放

    -

    虽然我们可以使用 Web 动画 API 编写 CSS 动画,其中 API 真正派上用场的是操纵动画的播放。 Web 动画 API 提供了一些控制播放的有用方法。 让我们来看看在 Growing / Shrinking Alice 游戏中暂停和播放动画(请查看 Codepen 的完整代码 full code on Codepen):

    +

    虽然我们可以使用 Web 动画 API 编写 CSS 动画,其中 API 真正派上用场的是操纵动画的播放。Web 动画 API 提供了一些控制播放的有用方法。让我们来看看在 Growing / Shrinking Alice 游戏中暂停和播放动画(请查看 Codepen 的完整代码 full code on Codepen):

    Playing the growing and shrinking game with Alice.

    -

    在这个游戏中,爱丽丝有一个动画,使她从小到大,我们通过一个瓶子和一个蛋糕控制。 这两个都有自己的动画。

    +

    在这个游戏中,爱丽丝有一个动画,使她从小到大,我们通过一个瓶子和一个蛋糕控制。这两个都有自己的动画。

    暂停和启动动画

    @@ -154,7 +154,7 @@

    暂停和启动动画

    nommingCake.play();
    -

    特别地,我们想将其链接到爱丽丝的动画,所以当蛋糕被吃掉时,她变得更大。 我们可以通过以下功能来实现:

    +

    特别地,我们想将其链接到爱丽丝的动画,所以当蛋糕被吃掉时,她变得更大。我们可以通过以下功能来实现:

    var growAlice = function() {
     
    @@ -182,7 +182,7 @@ 

    其他有用的方法

  •  ({{domxref("Animation.playbackRate")}}到负值,所以它向后运行。
  • -

    让我们先来看一下 playbackRate - 一个否定的播放速度将导致一个动画反向运行。 当爱丽丝从瓶中喝酒时,她越来越小。 这是因为瓶子将动画的播放速度从 1 更改为-1:

    +

    让我们先来看一下 playbackRate - 一个否定的播放速度将导致一个动画反向运行。当爱丽丝从瓶中喝酒时,她越来越小。这是因为瓶子将动画的播放速度从 1 更改为 -1:

    var shrinkAlice = function() {
       aliceChange.playbackRate = -1;
    @@ -192,11 +192,11 @@ 

    其他有用的方法

    bottle.addEventListener("mousedown", shrinkAlice, false); bottle.addEventListener("touchstart", shrinkAlice, false);
    -

    Through the Looking-Glass,爱丽丝旅行到一个世界,她必须跑步留在原地 - 运行两倍快速前进! 在红女王比赛的例子中,爱丽丝和红女王正在跑步,留下来(查看 Codepen 上的全部代码full code on Codepen):

    +

    Through the Looking-Glass,爱丽丝旅行到一个世界,她必须跑步留在原地 - 运行两倍快速前进!在红女王比赛的例子中,爱丽丝和红女王正在跑步,留下来(查看 Codepen 上的全部代码full code on Codepen):

    Alice and the Red Queen race to get to the next square in this game.

    -

    因为小孩子很容易疲惫不堪,不像自动机棋子,爱丽丝不断减速。 我们已经通过在动画播放时设置了一个衰减代码:

    +

    因为小孩子很容易疲惫不堪,不像自动机棋子,爱丽丝不断减速。我们已经通过在动画播放时设置了一个衰减代码:

    setInterval( function() {
     
    @@ -218,11 +218,11 @@ 

    其他有用的方法

    document.addEventListener("click", goFaster); document.addEventListener("touchstart", goFaster);
    -

    背景元素还具有播放时间,当您点击或点击时,它们会受到影响。 当 Alice 和 Red Queen 跑两倍的时候会发生什么? 当你让他们放慢时会发生什么?

    +

    背景元素还具有播放时间,当您点击或点击时,它们会受到影响。当 Alice 和 Red Queen 跑两倍的时候会发生什么?当你让他们放慢时会发生什么?

    获取动画信息

    -

    想象其他方式我们可以使用 playbackRate,例如通过让他们减慢整个网站的动画来改善具有前庭障碍的用户的可访问性。 这不可能在 CSS 中重新计算每个 CSS 规则的持续时间,但是通过 Web 动画 API,我们可以使用即将到来的(在浏览器中不支持!){{domxref("document.getAnimations()")}}方法 循环遍历页面上的每个动画,并将它们的播放速度减半:

    +

    想象其他方式我们可以使用 playbackRate,例如通过让他们减慢整个网站的动画来改善具有前庭障碍的用户的可访问性。这不可能在 CSS 中重新计算每个 CSS 规则的持续时间,但是通过 Web 动画 API,我们可以使用即将到来的(在浏览器中不支持!){{domxref("document.getAnimations()")}}方法 循环遍历页面上的每个动画,并将它们的播放速度减半:

    document.getAnimations().forEach(
       function (animation) {
    @@ -232,7 +232,7 @@ 

    获取动画信息

    使用 Web 动画 API,您需要更改的只是一个小的属性!

    -

    另一件与 CSS 动画有关的难点就是创建依赖于其他动画提供的值。 例如,在“成长和收缩爱丽丝”游戏的例子中,您可能会注意到蛋糕的持续时间有些奇怪:

    +

    另一件与 CSS 动画有关的难点就是创建依赖于其他动画提供的值。例如,在“成长和收缩爱丽丝”游戏的例子中,您可能会注意到蛋糕的持续时间有些奇怪:

    duration: aliceChange.effect.timing.duration / 2
    @@ -248,19 +248,19 @@

    获取动画信息

    fill: 'both' });
    -

    爱丽丝的动画让她的尺寸从一半到 8 秒的两倍。 然后我们暂停她:

    +

    爱丽丝的动画让她的尺寸从一半到 8 秒的两倍。然后我们暂停她:

    aliceChange.pause();
    -

    如果我们在动画开始时已经把她暂停了,那么她的全部尺寸将从一半开始,就像她已经把整个瓶子都喝完了一样! 我们想把动画的“播放头”放在中间,所以她已经中途了。 我们可以通过将她的 {{domxref("Animation.currentTime")}}设置为 4 秒,如下所示:

    +

    如果我们在动画开始时已经把她暂停了,那么她的全部尺寸将从一半开始,就像她已经把整个瓶子都喝完了一样!我们想把动画的“播放头”放在中间,所以她已经中途了。我们可以通过将她的 {{domxref("Animation.currentTime")}}设置为 4 秒,如下所示:

    aliceChange.currentTime = 4000;
    -

    但是在制作这个动画的时候,我们可能会改变爱丽丝的持续时间。 如果我们将动态时间设置为 timeTime,那么它不会更好吗?所以我们一次不必再做两个更新? 我们实际上可以通过引用 aliceChange 的{{domxref("Animation.effect")}}属性来实现,该属性返回一个包含 Alice 上所有效果细节的对象:

    +

    但是在制作这个动画的时候,我们可能会改变爱丽丝的持续时间。如果我们将动态时间设置为 timeTime,那么它不会更好吗?所以我们一次不必再做两个更新?我们实际上可以通过引用 aliceChange 的{{domxref("Animation.effect")}}属性来实现,该属性返回一个包含 Alice 上所有效果细节的对象:

    aliceChange.currentTime = aliceChange.effect.timing.duration / 2;
    -

    效果让我们访问动画的关键帧和时间对象 - aliceChange.effect.timing 指向 Alice 的时间对象(其类型为{{domxref("AnimationEffectTimingReadOnly")}})- 这包含她的{{domxref("AnimationEffectTimingReadOnly.duration")}}。 我们可以将她的持续时间分成两半,以获得她动画时间轴的中点,使她成为正常的高度。 现在,我们可以在任何一个方向扭转和播放动画,使她变小或变大!

    +

    效果让我们访问动画的关键帧和时间对象 - aliceChange.effect.timing 指向 Alice 的时间对象(其类型为{{domxref("AnimationEffectTimingReadOnly")}})- 这包含她的{{domxref("AnimationEffectTimingReadOnly.duration")}}。我们可以将她的持续时间分成两半,以获得她动画时间轴的中点,使她成为正常的高度。现在,我们可以在任何一个方向扭转和播放动画,使她变小或变大!

    当设置蛋糕和瓶子的持续时间时,我们可以做同样的事情:

    @@ -276,7 +276,7 @@

    获取动画信息

    现在,所有三个动画只有一个持续时间,我们可以从一个地方容易地改变。

    -

    我们还可以使用 Web 动画 API 来确定动画当前的时间。 当你用尽蛋糕吃或者清空瓶子时,游戏就结束了。 哪个角色扮演者取决于爱丽丝在她的动画中有多远,无论她是否变得太大,不能进入小门太小,无法达到打开门的钥匙。 我们可以弄清楚她是否在动画的大端或小端,让她的动画当前时间 (currentTime) 被她的 activeDuration 分成:

    +

    我们还可以使用 Web 动画 API 来确定动画当前的时间。当你用尽蛋糕吃或者清空瓶子时,游戏就结束了。哪个角色扮演者取决于爱丽丝在她的动画中有多远,无论她是否变得太大,不能进入小门太小,无法达到打开门的钥匙。我们可以弄清楚她是否在动画的大端或小端,让她的动画当前时间 (currentTime) 被她的 activeDuration 分成:

    var endGame = function() {
     
    @@ -338,7 +338,7 @@ 

    Callbacks and promises

    结论

    -

    这些是 Web 动画 API 的基本功能,其中大部分功能已在最新版本的 Firefox 和 Chrome 中得到支持。 到目前为止,您应该准备好在浏览器中“跳下兔子洞”,动画制作动画实验! 如果您正在使用 API 并要共享,请尝试使用#WAAPI 主题标签。 我们将会观看并且将编写更多的教程来涵盖更多的功能,支持传播!

    +

    这些是 Web 动画 API 的基本功能,其中大部分功能已在最新版本的 Firefox 和 Chrome 中得到支持。到目前为止,您应该准备好在浏览器中“跳下兔子洞”,动画制作动画实验!如果您正在使用 API 并要共享,请尝试使用#WAAPI 主题标签。我们将会观看并且将编写更多的教程来涵盖更多的功能,支持传播!

    See also

    diff --git a/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.html b/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.html index cbfe20e6d732e5..430b76d350642f 100644 --- a/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.html +++ b/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.html @@ -57,8 +57,8 @@

    音频片段:帧,样本和声

    现在让我们来看一下通道,一个单声道和一个立体声的音频片段,每个都是 1 秒钟,播放频率(采样率)为 44100 赫兹:

      -
    • 单声道片段会有 44100 个样本点和 44100 个帧。长度属性为 44100 。
    • -
    • 立体声片段会有 88200 个样本点和 44100 个帧。长度属性依旧为 44100 ,因为长度总和帧的个数相同。
    • +
    • 单声道片段会有 44100 个样本点和 44100 个帧。长度属性为 44100。
    • +
    • 立体声片段会有 88200 个样本点和 44100 个帧。长度属性依旧为 44100,因为长度总和帧的个数相同。

    A diagram showing several frames in an audio buffer in a long line, each one containing two samples, as the buffer has two channels, it is stereo.

    @@ -78,7 +78,7 @@

    音频片段:帧,样本和声

    如果你使用上面的方法调用,你将会得到一个立体声(两个声道)的音频片段 (Buffer),当它在一个频率为 44100 赫兹(这是目前大部分声卡处理声音的频率)的音频环境中播放的时候,会持续 0.5 秒:22050 帧 / 44100 赫兹 = 0.5 秒。

    -

    注意: 在 数字音频 中,44,100 赫兹 (有时也写作 44.1 kHz)是一个常见的 取样频率。 为什么选取 44.1kHz 呢?首先,因为 人耳的接收频率 大约在 20 Hz 到 20,000 Hz 之间,根据 采样定理,采样频率一定要大于最终生成数据最大频率的二倍,因此就一定要大于 40,000 Hz(即 40kHz)。不仅如此,在采样之前信号还必须通过 低通滤波器 ,否则 会发生混叠现象,一个理想低通滤波器会完全留下低于 20kHz 的信号(且没有使它衰减)并完美阻拦一切高于 20kHz 的信号,而事实上 过度频带(英文)总是存在,在这个区域内信号会被部分衰减。这个频带越宽,建立一个 抗混叠滤波器 才越容易。因此我们选取 44.1kHz 允许我们有 2.05kHz 的空间预留给过度频带。

    +

    注意: 在 数字音频 中,44,100 赫兹 (有时也写作 44.1 kHz)是一个常见的 取样频率。为什么选取 44.1kHz 呢?首先,因为 人耳的接收频率 大约在 20 Hz 到 20,000 Hz 之间,根据 采样定理,采样频率一定要大于最终生成数据最大频率的二倍,因此就一定要大于 40,000 Hz(即 40kHz)。不仅如此,在采样之前信号还必须通过 低通滤波器 ,否则 会发生混叠现象,一个理想低通滤波器会完全留下低于 20kHz 的信号(且没有使它衰减)并完美阻拦一切高于 20kHz 的信号,而事实上 过度频带(英文)总是存在,在这个区域内信号会被部分衰减。这个频带越宽,建立一个 抗混叠滤波器 才越容易。因此我们选取 44.1kHz 允许我们有 2.05kHz 的空间预留给过度频带。

    var context = new AudioContext();
    diff --git a/files/zh-cn/web/api/web_audio_api/best_practices/index.html b/files/zh-cn/web/api/web_audio_api/best_practices/index.html
    index f0013a4ff3fae2..60762ac80b7f26 100644
    --- a/files/zh-cn/web/api/web_audio_api/best_practices/index.html
    +++ b/files/zh-cn/web/api/web_audio_api/best_practices/index.html
    @@ -11,7 +11,7 @@
     ---
     
    {{apiref("Web Audio API")}}
    -

    在创意编程中(creative coding)没有严格的对错之分。 只要你充分考虑安全性、性能和 accessibility,你可以用自己的办法来编写代码。在这篇文章中,我们会分享一些最佳实践——包含使用 Web Audio API 的指导、小知识和小技巧。

    +

    在创意编程中(creative coding)没有严格的对错之分。只要你充分考虑安全性、性能和 accessibility,你可以用自己的办法来编写代码。在这篇文章中,我们会分享一些最佳实践——包含使用 Web Audio API 的指导、小知识和小技巧。

    加载声音/声音文件

    diff --git a/files/zh-cn/web/api/web_audio_api/index.html b/files/zh-cn/web/api/web_audio_api/index.html index 7a5c64af96f265..f8632da979f428 100644 --- a/files/zh-cn/web/api/web_audio_api/index.html +++ b/files/zh-cn/web/api/web_audio_api/index.html @@ -12,7 +12,7 @@

    Web audio 概念与使用

    -

    Web Audio API 使用户可以在音频上下文(AudioContext) 中进行音频操作,具有模块化路由的特点。在音频节点上操作进行基础的音频, 它们连接在一起构成音频路由图。即使在单个上下文中也支持多源,尽管这些音频源具有多种不同类型通道布局。这种模块化设计提供了灵活创建动态效果的复合音频的方法。

    +

    Web Audio API 使用户可以在音频上下文(AudioContext) 中进行音频操作,具有模块化路由的特点。在音频节点上操作进行基础的音频,它们连接在一起构成音频路由图。即使在单个上下文中也支持多源,尽管这些音频源具有多种不同类型通道布局。这种模块化设计提供了灵活创建动态效果的复合音频的方法。

    音频节点通过它们的输入输出相互连接,形成一个链或者一个简单的网。一般来说,这个链或网起始于一个或多个音频源。音频源可以提供一个片段一个片段的音频采样数据(以数组的方式),一般,一秒钟的音频数据可以被切分成几万个这样的片段。这些片段可以是经过一些数学运算得到 (比如{{domxref("OscillatorNode")}}),也可以是音频或视频的文件读出来的(比如{{domxref("AudioBufferSourceNode")}}和{{domxref("MediaElementAudioSourceNode")}}),又或者是音频流({{domxref("MediaStreamAudioSourceNode")}})。其实,音频文件本身就是声音的采样数据,这些采样数据可以来自麦克风,也可以来自电子乐器,然后混合成一个单一的复杂的波形。

    @@ -50,7 +50,7 @@

    通用音频图定义

    {{domxref("AudioContext")}}
    AudioContext接口代表由音频模块构成的音频处理图。音频上下文控制其所包含节点的创建和音频处理、解码。使用其它接口前你必需创建一个音频上下文,一切操作都在这个环境里进行。
    {{domxref("AudioNode")}}
    -
    音频节点 接口是一个音频处理模块, 例如音频源({{HTMLElement("audio")}}或{{HTMLElement("video")}}),音频输出、中间处理模块(例如:滤波器 {{domxref("BiquadFilterNode")}} 或者音量控制器 {{domxref("GainNode")}})。
    +
    音频节点 接口是一个音频处理模块,例如音频源({{HTMLElement("audio")}}或{{HTMLElement("video")}}),音频输出、中间处理模块(例如:滤波器 {{domxref("BiquadFilterNode")}} 或者音量控制器 {{domxref("GainNode")}})。
    {{domxref("AudioParam")}}
    AudioParam 接口代表音频相关的参数,比如一个 {{domxref("AudioNode")}}的参数。它可以设置为特定值或值的变化,并且可以在指定的时间之后以指定模式变更。
    {{event("ended")}}结束事件
    diff --git a/files/zh-cn/web/api/web_audio_api/using_web_audio_api/index.html b/files/zh-cn/web/api/web_audio_api/using_web_audio_api/index.html index df292e54efdee0..4b87a2f436e07d 100644 --- a/files/zh-cn/web/api/web_audio_api/using_web_audio_api/index.html +++ b/files/zh-cn/web/api/web_audio_api/using_web_audio_api/index.html @@ -60,7 +60,7 @@

    音频上下文

    加载声音

    -

    现在,需要通过我们创建的音频上下文播放一些声音。Web Audio API 中有几种方法可以实现这一点。让我们通过一个简单的方法开始 — 因为我们有一个音箱,我们可能想播放一首完整的歌曲。 此外,为了便于访问,我们可以在在 DOM 中暴露该音轨。我们将使用 {{htmlelement("audio")}} 元素在页面上暴露这首歌曲。

    +

    现在,需要通过我们创建的音频上下文播放一些声音。Web Audio API 中有几种方法可以实现这一点。让我们通过一个简单的方法开始 — 因为我们有一个音箱,我们可能想播放一首完整的歌曲。此外,为了便于访问,我们可以在在 DOM 中暴露该音轨。我们将使用 {{htmlelement("audio")}} 元素在页面上暴露这首歌曲。

    <audio src="myCoolTrack.mp3" type="audio/mpeg"></audio>
     
    @@ -200,7 +200,7 @@

    为应用程序增加立体声平

    如果用户拥有立体声功能,可用 {{domxref("StereoPannerNode")}} 节点改变左右扬声器的平衡。

    -

    注意: StereoPannerNode 用于你只想从左到右进行立体声平移的简单情况。还有一个  {{domxref("PannerNode")}}, 它允许对 3D 空间或声音空间化进行大量控制以创建更复杂的效果。这在游戏和 3D 应用程序中生成小鸟飞过头顶或者来自用户身后的声音。

    +

    注意: StereoPannerNode 用于你只想从左到右进行立体声平移的简单情况。还有一个  {{domxref("PannerNode")}},它允许对 3D 空间或声音空间化进行大量控制以创建更复杂的效果。这在游戏和 3D 应用程序中生成小鸟飞过头顶或者来自用户身后的声音。

    为了使其可视化,我们将使我们的音频图如下:

    @@ -217,7 +217,7 @@

    为应用程序增加立体声平

    注意:目前生成节点的构造函数不是每个浏览器都支持的。旧工厂函数支持更为广泛。

    -

    这里我们的范围从-1(最左边)和 1(最右边)。再次让我们使用范围类型的 input 来改变这个参数:

    +

    这里我们的范围从 -1(最左边)和 1(最右边)。再次让我们使用范围类型的 input 来改变这个参数:

    <input type="range" id="panner" min="-1" max="1" value="0" step="0.01">
     
    @@ -306,7 +306,7 @@

    创建 AudioSource

    • 通过 JavaScript 直接生成一个音频节点比如 oscillator. 一个 {{ domxref("OscillatorNode") }}是利用{{ domxref("AudioContext.createOscillator") }} 方法来构建。
    • -
    • 从原 PCM 数据构建: AudioContext 有解密被支持的音频格式的多种方法。 看 {{ domxref("AudioContext.createBuffer()") }}, {{ domxref("AudioContext.createBufferSource()") }}, 以及 {{ domxref("AudioContext.decodeAudioData()") }}.
    • +
    • 从原 PCM 数据构建:AudioContext 有解密被支持的音频格式的多种方法。 看 {{ domxref("AudioContext.createBuffer()") }}, {{ domxref("AudioContext.createBufferSource()") }}, 以及 {{ domxref("AudioContext.decodeAudioData()") }}.
    • 来自于 HTML 音频元素例如 {{HTMLElement("video")}} 或者{{HTMLElement("audio")}}: 可以看 {{ domxref("AudioContext.createMediaElementSource()") }}.
    • 直接来自于 WebRTC,{{domxref("MediaStream")}} 例如来自于摄像头或麦克风。可以看{{ domxref("AudioContext.createMediaStreamSource()") }}.
    diff --git a/files/zh-cn/web/api/web_audio_api/web_audio_spatialization_basics/index.html b/files/zh-cn/web/api/web_audio_api/web_audio_spatialization_basics/index.html index f7db352535c850..d6fa82006b0d6b 100644 --- a/files/zh-cn/web/api/web_audio_api/web_audio_spatialization_basics/index.html +++ b/files/zh-cn/web/api/web_audio_api/web_audio_spatialization_basics/index.html @@ -208,7 +208,7 @@

    移动 boombox

    break;

    然而,我们的旋转值稍为复杂,因为我们需要在周围移动声音。我们不仅需要更新两个轴值(例如,如果围绕 x 轴旋转对象,则更新该对象的 y 和 z 坐标),还需要为此进行更多的数学运算。旋转是一个圆圈,我们需要 Math.sin 和 Math.cos 来帮助我们绘制这个圆圈。 
    - 让我们设置一个旋转速率,我们将会将它转换为弧度范围的值,以便稍后在 Math.sin 和 Math.cos 中使用,当我们在旋转我们的 boombox ,需要计算出新的坐标时:

    + 让我们设置一个旋转速率,我们将会将它转换为弧度范围的值,以便稍后在 Math.sin 和 Math.cos 中使用,当我们在旋转我们的 boombox,需要计算出新的坐标时:

    // set up rotation constants
     const rotationRate = 60; // bigger number equals slower sound rotation
    diff --git a/files/zh-cn/web/api/web_authentication_api/index.html b/files/zh-cn/web/api/web_authentication_api/index.html
    index ee54a793a1f673..06fc9d7e71775f 100644
    --- a/files/zh-cn/web/api/web_authentication_api/index.html
    +++ b/files/zh-cn/web/api/web_authentication_api/index.html
    @@ -9,7 +9,7 @@
     
     

    Web authentication 概念和用例

    -

    Web Authentication API(也称作 WebAuthn)使用asymmetric (public-key) cryptography (非对称加密)替代密码或 SMS 短信在网站上注册、登录、second-factor authentication(双因素验证)。 解决了 phishing(钓鱼)、data breaches(数据破坏)、SMS 文本攻击、其它双因素验证等重大安全问题,同时显著提高了易用性(因为用户不必管理许多越来越复杂的密码)。

    +

    Web Authentication API(也称作 WebAuthn)使用asymmetric (public-key) cryptography (非对称加密)替代密码或 SMS 短信在网站上注册、登录、second-factor authentication(双因素验证)。解决了 phishing(钓鱼)、data breaches(数据破坏)、SMS 文本攻击、其它双因素验证等重大安全问题,同时显著提高了易用性(因为用户不必管理许多越来越复杂的密码)。

    许多网站已实现用户注册账号,登录已有账号的页面, WebAuthn 作为这些页面的替代和补充。类似其他形式的 Credential Management API(凭据管理 API)。Web Authentication API 有两个对应于注册和登录的基本方法:

    diff --git a/files/zh-cn/web/api/web_speech_api/index.html b/files/zh-cn/web/api/web_speech_api/index.html index 9a31ea6a48bcc8..1cf9e7ae389a91 100644 --- a/files/zh-cn/web/api/web_speech_api/index.html +++ b/files/zh-cn/web/api/web_speech_api/index.html @@ -13,7 +13,7 @@ ---
    {{DefaultAPISidebar("Web Speech API")}}{{seecompattable}}
    -

    Web Speech API 使您能够将语音数据合并到 Web 应用程序中。 Web Speech API 有两个部分:SpeechSynthesis 语音合成(文本到语音 TTS)和 SpeechRecognition  语音识别(异步语音识别)。

    +

    Web Speech API 使您能够将语音数据合并到 Web 应用程序中。Web Speech API 有两个部分:SpeechSynthesis 语音合成(文本到语音 TTS)和 SpeechRecognition  语音识别(异步语音识别)。

    Web Speech 的概念及用法

    diff --git a/files/zh-cn/web/api/web_speech_api/using_the_web_speech_api/index.html b/files/zh-cn/web/api/web_speech_api/using_the_web_speech_api/index.html index fb146a7d9f130c..447fb2c90d7336 100644 --- a/files/zh-cn/web/api/web_speech_api/using_the_web_speech_api/index.html +++ b/files/zh-cn/web/api/web_speech_api/using_the_web_speech_api/index.html @@ -12,7 +12,7 @@

    Speech recognition

    Speech recognition(语音识别) 涉及三个过程:首先,需要设备的麦克风接收这段语音;其次,speech recognition service(语音识别服务器) 会根据一系列语法 (基本上,语法是你希望在具体的应用中能够识别出来的词汇) 来检查这段语音;最后,当一个单词或者短语被成功识别后,结果会以文本字符串的形式返回 (结果可以有多个),以及更多的行为可以设置被触发。

    -

    Web Speech API 有一个主要的控制接口——SpeechRecognition, 外加一些如表示语法、表示结果等等亲密相关的接口。通常,设备都有可使用的默认语音识别系统,大部分现代操作系统使用这个语音识别系统来处理语音命令,比如 Mac OS X 上的 Dictation,iOS 上的 Siri,Win10 上的 Cortana,Android Speech 等等。

    +

    Web Speech API 有一个主要的控制接口——SpeechRecognition,外加一些如表示语法、表示结果等等亲密相关的接口。通常,设备都有可使用的默认语音识别系统,大部分现代操作系统使用这个语音识别系统来处理语音命令,比如 Mac OS X 上的 Dictation,iOS 上的 Siri,Win10 上的 Cortana,Android Speech 等等。

    Demo

    @@ -31,7 +31,7 @@

    Browser support

    Firefox 桌面端和移动端在 Gecko 44+ 中都支持,并且是没有前缀的,它可以在about:config 中把 media.webspeech.recognition.enable 设置为 true 打开。权限设置/UI 还没有整理出来,所以权限还不能被用户使用,也就是不能用。不过很快会修复吧~

  • -

    Firefox OS 2.5+ 也支持,但作为一个特权 API(privileged API) 需要权限,因此你需要在manifest.webapp (也可以通过 WebIDE 下载, 或者使应用得到验证后在 Firefox Marketplace 可使用) 如下设置:

    +

    Firefox OS 2.5+ 也支持,但作为一个特权 API(privileged API) 需要权限,因此你需要在manifest.webapp (也可以通过 WebIDE 下载,或者使应用得到验证后在 Firefox Marketplace 可使用) 如下设置:

    "permissions": {
       "audio-capture" : {
    diff --git a/files/zh-cn/web/api/web_storage_api/index.html b/files/zh-cn/web/api/web_storage_api/index.html
    index 450587872ca0f8..7f25031a6f3293 100644
    --- a/files/zh-cn/web/api/web_storage_api/index.html
    +++ b/files/zh-cn/web/api/web_storage_api/index.html
    @@ -91,7 +91,7 @@ 

    Window.sessionStorage

    隐私浏览/ 隐身模式

    -

    大多数现代浏览器支持称为 'Incognito' 的用户隐私选择,“隐私浏览” 或类似的功能可以不像历史记录和 cookie 那样存储数据。 这明显与 Web Storage 不兼容。因此,浏览器厂商正尝试不同的方式来处理不兼容问题。

    +

    大多数现代浏览器支持称为 'Incognito' 的用户隐私选择,“隐私浏览”或类似的功能可以不像历史记录和 cookie 那样存储数据。这明显与 Web Storage 不兼容。因此,浏览器厂商正尝试不同的方式来处理不兼容问题。

    多数浏览器可以选择一种策略使存储的 API 可以使用并且不受限制,最大的不同是存储的数据在浏览器关闭后被清除。这些浏览器对如何处理已经存在的数据(从定期的 session 中获取到的),仍旧持有不同解释。在隐私模式还应该可读吗?然后就有一些浏览器,尤其是 Safari,提供了可选的解决方式:存储可用,但是给其分配 0 字节的存储空间,有效的使其不能被写入数据。

    diff --git a/files/zh-cn/web/api/web_storage_api/using_the_web_storage_api/index.html b/files/zh-cn/web/api/web_storage_api/using_the_web_storage_api/index.html index d6d8f646181ced..8bb3197b9fba9e 100644 --- a/files/zh-cn/web/api/web_storage_api/using_the_web_storage_api/index.html +++ b/files/zh-cn/web/api/web_storage_api/using_the_web_storage_api/index.html @@ -9,7 +9,7 @@

    基本概念

    -

    存储对象是简单的键值存储,类似于对象,但是它们在页面加载时保持完整。键和值始终是字符串(请注意,与对象一样,整数键将自动转换为字符串)。您可以像访问对象一样访问这些值,或者使用  {{domxref("Storage.getItem()")}} 和  {{domxref("Storage.setItem()")}} 方法 。这三行都设置了(相同的)colorSetting 条目:

    +

    存储对象是简单的键值存储,类似于对象,但是它们在页面加载时保持完整。键和值始终是字符串(请注意,与对象一样,整数键将自动转换为字符串)。您可以像访问对象一样访问这些值,或者使用  {{domxref("Storage.getItem()")}} 和  {{domxref("Storage.setItem()")}} 方法。这三行都设置了(相同的)colorSetting 条目:

    localStorage.colorSetting = '#a4509b';
     localStorage['colorSetting'] = '#a4509b';
    diff --git a/files/zh-cn/web/api/web_workers_api/index.html b/files/zh-cn/web/api/web_workers_api/index.html
    index bcb215462325ce..5dea8854809026 100644
    --- a/files/zh-cn/web/api/web_workers_api/index.html
    +++ b/files/zh-cn/web/api/web_workers_api/index.html
    @@ -24,7 +24,7 @@ 

    Web Workers 概念与用法

    worker 可以另外生成新的 worker,这些 worker 与它们父页面的宿主相同。 此外,worker 可以通过 XMLHttpRequest 来访问网络,只不过 XMLHttpRequest 的 responseXML 和 channel 这两个属性的值将总是 null

    -

    除了专用 worker 之外,还有一些其他种类的 worker :

    +

    除了专用 worker 之外,还有一些其他种类的 worker:

    • Shared Workers 可被不同的窗体的多个脚本运行,例如 IFrames 等,只要这些 workers 处于同一主域。共享 worker 比专用 worker 稍微复杂一点 — 脚本必须通过活动端口进行通讯。详情请见{{domxref("SharedWorker")}}。
    • @@ -34,7 +34,7 @@

      Web Workers 概念与用法

    -

    注意: 根据网络 worker 规范, worker 错误事件不应该冒泡(参见{{bug(1188141)}})。该规范已在 Firefox 42 中实现。

    +

    注意: 根据网络 worker 规范,worker 错误事件不应该冒泡(参见{{bug(1188141)}})。该规范已在 Firefox 42 中实现。

    Web Worker 接口

    @@ -49,9 +49,9 @@

    Web Worker 接口

    {{domxref("WorkerGlobalScope")}}
    表示任意 worker 的通用作用域(对于正常的网页类容来说与{{domxref("Window")}} 有相同的作用)。不同类型的 worker 都有从接口继承作用于对象,并且可以添加更多特定功能。
    {{domxref("DedicatedWorkerGlobalScope")}}
    -
    表示一个专用 worker 的作用域, 继承自{{domxref("WorkerGlobalScope")}},且可添加一些特有的功能。
    +
    表示一个专用 worker 的作用域,继承自{{domxref("WorkerGlobalScope")}},且可添加一些特有的功能。
    {{domxref("SharedWorkerGlobalScope")}}
    -
    表示一个共享 worker 的作用域, 继承自{{domxref("WorkerGlobalScope")}}, 且可添加一些特有的功能。
    +
    表示一个共享 worker 的作用域,继承自{{domxref("WorkerGlobalScope")}},且可添加一些特有的功能。
    {{domxref("WorkerNavigator")}}
    表示用户代理(客户端)的身份和状态。
    diff --git a/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html b/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html index cf9f5012375507..af7082f1c8eb20 100644 --- a/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html +++ b/files/zh-cn/web/api/web_workers_api/using_web_workers/index.html @@ -291,7 +291,7 @@

    worker 中数据的接

    传递数据的例子

    -

    例子 #1: 创建一个通用的「异步 eval()

    +

    例子 #1:创建一个通用的「异步 eval()

    下面这个例子介绍了,如何在 worker 内使用  eval() 来按顺序执行异步的任何种类的 JavaScript 代码:

    @@ -573,7 +573,7 @@

    通过转让所有权 (可转让对象) 来传递数据

    -

    Google Chrome 17 与 Firefox 18 包含另一种性能更高的方法来将特定类型的对象 (可转让对象) 传递给一个 worker/从 worker 传回 。可转让对象从一个上下文转移到另一个上下文而不会经过任何拷贝操作。这意味着当传递大数据时会获得极大的性能提升。如果你从 C/C++ 世界来,那么把它想象成按照引用传递。然而与按照引用传递不同的是,一旦对象转让,那么它在原来上下文的那个版本将不复存在。该对象的所有权被转让到新的上下文内。例如,当你将一个 ArrayBuffer 对象从主应用转让到 Worker 中,原始的 ArrayBuffer 被清除并且无法使用。它包含的内容会 (完整无差的) 传递给 Worker 上下文。

    +

    Google Chrome 17 与 Firefox 18 包含另一种性能更高的方法来将特定类型的对象 (可转让对象) 传递给一个 worker/从 worker 传回。可转让对象从一个上下文转移到另一个上下文而不会经过任何拷贝操作。这意味着当传递大数据时会获得极大的性能提升。如果你从 C/C++ 世界来,那么把它想象成按照引用传递。然而与按照引用传递不同的是,一旦对象转让,那么它在原来上下文的那个版本将不复存在。该对象的所有权被转让到新的上下文内。例如,当你将一个 ArrayBuffer 对象从主应用转让到 Worker 中,原始的 ArrayBuffer 被清除并且无法使用。它包含的内容会 (完整无差的) 传递给 Worker 上下文。

    // Create a 32MB "file" and fill it.
     var uInt8Array = new Uint8Array(1024*1024*32); // 32MB
    @@ -727,7 +727,7 @@ 

    HTML 代码

    </html>
    -

    网页创建了一个 div 元素,ID 为 result , 用它来显示运算结果,然后生成 worker。在生成 worker 后,onmessage 处理函数配置为通过设置 div 元素的内容来显示运算结果,然后 onerror 处理函数被设置为 转储 错误信息。

    +

    网页创建了一个 div 元素,ID 为 result ,用它来显示运算结果,然后生成 worker。在生成 worker 后,onmessage 处理函数配置为通过设置 div 元素的内容来显示运算结果,然后 onerror 处理函数被设置为 转储 错误信息。

    最后,向 worker 发送一条信息来启动它。

    diff --git a/files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html b/files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html index 15edfb1f79e53b..bdd166554dba2c 100644 --- a/files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html +++ b/files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html @@ -16,10 +16,10 @@

    参数

    target
    -
     {{domxref("GLenum")}} 指定查询个的 target, 可能的值有: +
     {{domxref("GLenum")}} 指定查询个的 target,可能的值有:
    • gl.ANY_SAMPLES_PASSED: Specifies an occlusion query: these queries detect whether an object is visible (whether the scoped drawing commands pass the depth test and if so, how many samples pass).
    • -
    • gl.ANY_SAMPLES_PASSED_CONSERVATIVE: 和以上一样, 但是是一个不精确和更快的版本。
    • +
    • gl.ANY_SAMPLES_PASSED_CONSERVATIVE: 和以上一样,但是是一个不精确和更快的版本。
    • gl.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: Number of primitives that are written to transform feedback buffers.
    diff --git a/files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html b/files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html index fd008a9e47ba1d..2c15592d3dca53 100644 --- a/files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html +++ b/files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html @@ -29,7 +29,7 @@

    参数

    index
    -
    {{domxref("GLuint")}} 指定目标(target)的 index 。
    +
    {{domxref("GLuint")}} 指定目标(target)的 index。
    buffer
    绑定到目标点(target)的 {{domxref("WebGLBuffer")}} 。
    diff --git a/files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html b/files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html index 0137861c4f522b..78e64a643bb727 100644 --- a/files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html +++ b/files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html @@ -22,7 +22,7 @@

    返回值

    例子

    -

    gl 必须是 {{domxref("WebGL2RenderingContext")}} 类型. WebGL 1 不支持  WebGLSampler 对象。

    +

    gl 必须是 {{domxref("WebGL2RenderingContext")}} 类型。WebGL 1 不支持  WebGLSampler 对象。

    var sampler = gl.createSampler();
     
    diff --git a/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html b/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html index c40ffa0baf2d69..4e69b0170e9d61 100644 --- a/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html +++ b/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html @@ -31,7 +31,7 @@

    参数

    level
    -
    {{domxref("GLint")}}指定细节等级。level0 是基础图片等级, n 是第 n 个 mipmap 纹理衰减等级。(译者注:原文中衰减应该指像素,并且注意,webgl 的 Mipmapping 技术要求顶层图像的行和列的维数均为 2 的幂)
    +
    {{domxref("GLint")}}指定细节等级。level0 是基础图片等级,n 是第 n 个 mipmap 纹理衰减等级。(译者注:原文中衰减应该指像素,并且注意,webgl 的 Mipmapping 技术要求顶层图像的行和列的维数均为 2 的幂)
    internalformat
    {{domxref("GLint")}}指定贴图的颜色组成,可能值为:
      @@ -139,7 +139,7 @@

      说明

      - + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html b/files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html index b04c65d1702bb5..89c51b8084018c 100644 --- a/files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html +++ b/files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html @@ -30,7 +30,7 @@

      参数

      location
      一个包含想要修改的 uniform 变量的{{domxref("WebGLUniformLocation")}} 对象
      transpose
      -
      一个决定是否转置矩阵的布尔值( {{domxref("GLboolean")}}。 在 webgl 中必须为false
      +
      一个决定是否转置矩阵的布尔值( {{domxref("GLboolean")}}。在 webgl 中必须为false
      data
      一个包含方阵中浮点数的类数组对象 (TypeArray) {{jsxref("Float32Array")}}。
      diff --git a/files/zh-cn/web/api/webgl_api/basic_2d_animation_example/index.html b/files/zh-cn/web/api/webgl_api/basic_2d_animation_example/index.html index 991f6de8f87fa2..179a77b77e3947 100644 --- a/files/zh-cn/web/api/webgl_api/basic_2d_animation_example/index.html +++ b/files/zh-cn/web/api/webgl_api/basic_2d_animation_example/index.html @@ -12,7 +12,7 @@

      Vertex shader

      -

      首先,让我们看一下顶点着色器。它的工作如同以往,是将我们用于场景的坐标转换为剪贴空间的坐标(即系统中的(0,0)位于上下文的中心,每个轴从-1.0 扩展到 1.0,而不管上下文的实际大小)。

      +

      首先,让我们看一下顶点着色器。它的工作如同以往,是将我们用于场景的坐标转换为剪贴空间的坐标(即系统中的(0,0)位于上下文的中心,每个轴从 -1.0 扩展到 1.0,而不管上下文的实际大小)。

      <script id="vertex-shader" type="x-shader/x-vertex">
         attribute vec2 aVertexPosition;
      @@ -32,7 +32,7 @@ 

      Vertex shader

      } </script>
      -

      主程序与我们共享属性 aVertexPosition,它是顶点在其使用的任何坐标系中的位置。我们需要转换这些值,以便位置的两个组件都在-1.0 到 1.0 的范围内。通过乘以基于上下文宽高比的缩放因子,可以很容易地完成此操作。我们很快就会看到这个计算。

      +

      主程序与我们共享属性 aVertexPosition,它是顶点在其使用的任何坐标系中的位置。我们需要转换这些值,以便位置的两个组件都在 -1.0 到 1.0 的范围内。通过乘以基于上下文宽高比的缩放因子,可以很容易地完成此操作。我们很快就会看到这个计算。

      我们也可以通过一次变换来旋转这个图形。 The rotated position of the vertex is computed by applying the rotation vector, found in the uniform uRotationVector, that's been computed by the JavaScript code.

      diff --git a/files/zh-cn/web/api/webgl_api/by_example/hello_glsl/index.html b/files/zh-cn/web/api/webgl_api/by_example/hello_glsl/index.html index c821301d123cea..0b47c178a78fed 100644 --- a/files/zh-cn/web/api/webgl_api/by_example/hello_glsl/index.html +++ b/files/zh-cn/web/api/webgl_api/by_example/hello_glsl/index.html @@ -11,7 +11,7 @@
      -

      注意:本例子能在大多数现代桌面版浏览器上运行。但或许不能在移动端或者古老的浏览器上运行。如果 canvas 显示一片空白,你可以试着用下一个例子检查一下输出是否绘制的是同样的图形。 但要记住在前往下一个例子之前,要仔细阅读本页并动手写代码。

      +

      注意:本例子能在大多数现代桌面版浏览器上运行。但或许不能在移动端或者古老的浏览器上运行。如果 canvas 显示一片空白,你可以试着用下一个例子检查一下输出是否绘制的是同样的图形。但要记住在前往下一个例子之前,要仔细阅读本页并动手写代码。

      {{EmbedLiveSample("hello-glsl-source",660,425)}}

      diff --git a/files/zh-cn/web/api/webgl_api/constants/index.html b/files/zh-cn/web/api/webgl_api/constants/index.html index 6632c5cc0a9140..caaa71a639a7a3 100644 --- a/files/zh-cn/web/api/webgl_api/constants/index.html +++ b/files/zh-cn/web/api/webgl_api/constants/index.html @@ -86,7 +86,7 @@

      指定渲染图元 Rendering pr

      - + @@ -101,7 +101,7 @@

      指定渲染图元 Rendering pr

      - + @@ -321,7 +321,7 @@

      获取 GL 参数信息

      - + @@ -735,7 +735,7 @@

      Enabling and disabling

      - + diff --git a/files/zh-cn/web/api/webgl_api/index.html b/files/zh-cn/web/api/webgl_api/index.html index f31ad18a53f064..02f5a990911f84 100644 --- a/files/zh-cn/web/api/webgl_api/index.html +++ b/files/zh-cn/web/api/webgl_api/index.html @@ -13,7 +13,7 @@
      {{WebGLSidebar}}
      -

      WebGL(Web 图形库)是一个 JavaScript API,可在任何兼容的 Web 浏览器中渲染高性能的交互式 3D 和 2D 图形,而无需使用插件。WebGL 通过引入一个与 OpenGL ES 2.0 非常一致的 API 来做到这一点,该 API 可以在 HTML5 {{HTMLElement("canvas")}}元素中使用。 这种一致性使 API 可以利用用户设备提供的硬件图形加速。

      +

      WebGL(Web 图形库)是一个 JavaScript API,可在任何兼容的 Web 浏览器中渲染高性能的交互式 3D 和 2D 图形,而无需使用插件。WebGL 通过引入一个与 OpenGL ES 2.0 非常一致的 API 来做到这一点,该 API 可以在 HTML5 {{HTMLElement("canvas")}}元素中使用。这种一致性使 API 可以利用用户设备提供的硬件图形加速。

      目前支持 WebGL 的浏览器有:Firefox 4+, Google Chrome 9+, Opera 12+, Safari 5.1+, Internet Explorer 11+ 和Microsoft Edge build 10240+;然而,WebGL 一些特性也需要用户的硬件设备支持。

      @@ -226,7 +226,7 @@

      浏览器兼容性

      WebGL 1

      {{Compat("api.WebGLRenderingContext", 0)}}

      @@ -234,7 +234,7 @@

      WebGL 1

      WebGL 2

      {{Compat("api.WebGL2RenderingContext", 0)}}

      diff --git a/files/zh-cn/web/api/webgl_api/matrix_math_for_the_web/index.html b/files/zh-cn/web/api/webgl_api/matrix_math_for_the_web/index.html index 5fb6a3573d0f15..bb897e429f67a1 100644 --- a/files/zh-cn/web/api/webgl_api/matrix_math_for_the_web/index.html +++ b/files/zh-cn/web/api/webgl_api/matrix_math_for_the_web/index.html @@ -12,11 +12,11 @@

      矩阵可以用于表示空间中的对象的变换,并且是 Web 页面可视化的重要工具。本文探索如何创建并配合CSS3 变换和 matrix3d 变换类型使用矩阵。

      -

      虽然本文为了便于解释而使用了 CSS3, 矩阵却是许多技术中的核心概念, 包括 WebGL 和着色器。本文也是MDN content kit的一部分。示例使用了一组全局对象 MDN 下的工具函数

      +

      虽然本文为了便于解释而使用了 CSS3,矩阵却是许多技术中的核心概念,包括 WebGL 和着色器。本文也是MDN content kit的一部分。示例使用了一组全局对象 MDN 下的工具函数

      什么是变换矩阵?

      -

      虽然存在许多类型的矩阵,但我们感兴趣的是三维变换矩阵。这种矩阵由一个 4x4 方阵,共 16 个值组成。在 JavaScript 中,可以很方便的用数组表示矩阵。比如典型的单位矩阵。单位阵乘上一个点或者矩阵, 其结果保持不变。

      +

      虽然存在许多类型的矩阵,但我们感兴趣的是三维变换矩阵。这种矩阵由一个 4x4 方阵,共 16 个值组成。在 JavaScript 中,可以很方便的用数组表示矩阵。比如典型的单位矩阵。单位阵乘上一个点或者矩阵,其结果保持不变。

      var identityMatrix = [
         1, 0, 0, 0,
      @@ -78,7 +78,7 @@ 

      定义相乘函数

      var identityResult = multiplyMatrixAndPoint(identityMatrix, [4,3,2,1]);
      -

      返回同一个点并没有什么用处, 但还有一些其它的矩阵可以作用于点,返回有用的结果。接下来我们将演示其中一些矩阵。

      +

      返回同一个点并没有什么用处,但还有一些其它的矩阵可以作用于点,返回有用的结果。接下来我们将演示其中一些矩阵。

      两个矩阵相乘

      @@ -131,7 +131,7 @@

      用法

      -

      重要: 这些函数是为了解释的清晰而编写,而不是为了速度或者内存管理。这些函数新建了大量数组, 可能在实时运算时导致垃圾回收的巨大开销。在实际产品中最好使用优化过的函数。比如glMatrix就是一个注重速度和性能的库。

      +

      重要: 这些函数是为了解释的清晰而编写,而不是为了速度或者内存管理。这些函数新建了大量数组,可能在实时运算时导致垃圾回收的巨大开销。在实际产品中最好使用优化过的函数。比如glMatrix就是一个注重速度和性能的库。

      平移矩阵

      @@ -185,7 +185,7 @@

      用矩阵操作 DOM

      缩放矩阵

      -

      缩放矩阵使对象的高度、宽度和深度三个维度的其中之一变大或变小。在典型(笛卡尔)坐标系中, 这将使得 x,y,z 坐标拉伸或收缩。

      +

      缩放矩阵使对象的高度、宽度和深度三个维度的其中之一变大或变小。在典型(笛卡尔)坐标系中,这将使得 x,y,z 坐标拉伸或收缩。

      var w = 1.5; // width  (x)
       var h = 0.7; // height (y)
      diff --git a/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html b/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html
      index 36f771e484f880..4cae4c4be9d8e9 100644
      --- a/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html
      +++ b/files/zh-cn/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html
      @@ -19,17 +19,17 @@ 

      着色器

      着色器是使用 OpenGL ES 着色语言(GLSL) 编写的程序,它携带着绘制形状的顶点信息以及构造绘制在屏幕上像素的所需数据,换句话说,它负责记录着像素点的位置和颜色。

      -

      绘制 WebGL 时候有两种不同的着色器函数,顶点着色器和片段着色器。你需要通过用 GLSL 编写这些着色器,并将代码文本传递给 WebGL , 使之在 GPU 执行时编译。顺便一提,顶点着色器和片段着色器的集合我们通常称之为着色器程序。

      +

      绘制 WebGL 时候有两种不同的着色器函数,顶点着色器和片段着色器。你需要通过用 GLSL 编写这些着色器,并将代码文本传递给 WebGL, 使之在 GPU 执行时编译。顺便一提,顶点着色器和片段着色器的集合我们通常称之为着色器程序。

      下面我们通过在 WebGL 环境绘制一个 2D 图像的例子快速介绍这两种着色器。

      顶点着色器

      -

      每次渲染一个形状时,顶点着色器会在形状中的每个顶点运行。 它的工作是将输入顶点从原始坐标系转换到 WebGL 使用的缩放空间 (clipspace) 坐标系,其中每个轴的坐标范围从-1.0 到 1.0,并且不考虑纵横比,实际尺寸或任何其他因素。

      +

      每次渲染一个形状时,顶点着色器会在形状中的每个顶点运行。它的工作是将输入顶点从原始坐标系转换到 WebGL 使用的缩放空间 (clipspace) 坐标系,其中每个轴的坐标范围从 -1.0 到 1.0,并且不考虑纵横比,实际尺寸或任何其他因素。

      顶点着色器需要对顶点坐标进行必要的转换,在每个顶点基础上进行其他调整或计算,然后通过将其保存在由 GLSL 提供的特殊变量(我们称为 gl_Position)中来返回变换后的顶点

      -

      顶点着色器根据需要, 也可以完成其他工作。例如,决定哪个包含 {{interwiki("wikipedia", "texel_(graphics)", "texel")}}面部纹理的坐标,可以应用于顶点;通过法线来确定应用到顶点的光照因子等。然后将这些信息存储在变量(varyings)属性 (attributes)属性中,以便与片段着色器共享

      +

      顶点着色器根据需要,也可以完成其他工作。例如,决定哪个包含 {{interwiki("wikipedia", "texel_(graphics)", "texel")}}面部纹理的坐标,可以应用于顶点;通过法线来确定应用到顶点的光照因子等。然后将这些信息存储在变量(varyings)属性 (attributes)属性中,以便与片段着色器共享

      以下的顶点着色器接收一个我们定义的属性(aVertexPosition)的顶点位置值。之后这个值与两个 4x4 的矩阵(uProjectionMatrix 和 uModelMatrix)相乘; 乘积赋值给 gl_Position。有关投影和其他矩阵的更多信息,在这里您可能可以找到有帮助的文章.。

      @@ -75,7 +75,7 @@

      初始化着色器

      gl.attachShader(shaderProgram, fragmentShader); gl.linkProgram(shaderProgram); - // 创建失败, alert + // 创建失败,alert if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) { alert('Unable to initialize the shader program: ' + gl.getProgramInfoLog(shaderProgram)); return null; @@ -262,7 +262,7 @@

      创建对象

      }
      -

      第一步,用背景色擦除画布,接着建立摄像机透视矩阵。设置 45 度的视图角度,并且设置一个适合实际图像的宽高比。 指定在摄像机距离 0.1 到 100 单位长度的范围内的物体可见。

      +

      第一步,用背景色擦除画布,接着建立摄像机透视矩阵。设置 45 度的视图角度,并且设置一个适合实际图像的宽高比。指定在摄像机距离 0.1 到 100 单位长度的范围内的物体可见。

      接着加载特定位置,并把正方形放在距离摄像机 6 个单位的的位置。然后,我们绑定正方形的顶点缓冲到上下文,并配置好,再通过调用 {{domxref("WebGLRenderingContext.drawArrays()", "drawArrays()")}} 方法来画出对象。 

      @@ -272,7 +272,7 @@

      创建对象

      矩阵通用计算

      -

      矩阵计算是一个很复杂的运算。 没人会想去自己写完所有代码来处理这些运算。通常人们使用一个矩阵运算库,而不会自己实现矩阵运算。在这个例子中我们使用的是glMatrix library.

      +

      矩阵计算是一个很复杂的运算。没人会想去自己写完所有代码来处理这些运算。通常人们使用一个矩阵运算库,而不会自己实现矩阵运算。在这个例子中我们使用的是glMatrix library.

      相关资料

      diff --git a/files/zh-cn/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html b/files/zh-cn/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html index 0c2f37ec177961..d9790d6bb0c2ff 100644 --- a/files/zh-cn/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html +++ b/files/zh-cn/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html @@ -18,7 +18,7 @@

      准备 3D 渲染

      -

      为了使用 WebGL 进行 3D 渲染,你首先需要一个 canvas 元素。下面的 HTML 片段用来建立一个 canvas 元素并设置一个 onload 事件处理程序来初始化我们的 WebGL 上下文 。

      +

      为了使用 WebGL 进行 3D 渲染,你首先需要一个 canvas 元素。下面的 HTML 片段用来建立一个 canvas 元素并设置一个 onload 事件处理程序来初始化我们的 WebGL 上下文。

      <body onload="main()">
         <canvas id="glcanvas" width="640" height="480">
      @@ -49,11 +49,11 @@ 

      准备 WebGL 上下文

      gl.clear(gl.COLOR_BUFFER_BIT); }
      -

      我们所要做的第一件事就是是获取 canvas 的引用,把它保存在 ‘canvas’ 变量里。

      +

      我们所要做的第一件事就是是获取 canvas 的引用,把它保存在‘canvas’变量里。

      当我们获取到 canvas 之后,我们会调用getContext 函数并向它传递"webgl"参数,来尝试获取WebGLRenderingContext。如果浏览器不支持 webgl,getContext将会返回null,我们就可以显示一条消息给用户然后退出。

      -

      如果 WebGL 上下文成功初始化,变量 ‘gl’ 会用来引用该上下文。在这个例子里,我们用黑色清除上下文内已有的元素。(用背景颜色重绘 canvas)。

      +

      如果 WebGL 上下文成功初始化,变量‘gl’会用来引用该上下文。在这个例子里,我们用黑色清除上下文内已有的元素。(用背景颜色重绘 canvas)。

      {{EmbedGHLiveSample('webgl-examples/tutorial/sample1/index.html', 670, 510) }}

      @@ -62,7 +62,7 @@

      准备 WebGL 上下文

      参见

        -
      • WebGL 介绍: 由 Luz Caballero 所著, 发布在 dev.opera.com。 这篇文章说明 WebGL 是什么, 解释了 WebGL 是如何工作的 (介绍了渲染管线的概念),并且介绍了一些 WebGL 库。
      • +
      • WebGL 介绍: 由 Luz Caballero 所著,发布在 dev.opera.com。这篇文章说明 WebGL 是什么,解释了 WebGL 是如何工作的 (介绍了渲染管线的概念),并且介绍了一些 WebGL 库。
      • WebGL 基础
      • 现代 OpenGL 介绍: 由 Joe Groff 写的一系列关于 OpenGL 的不错的文章,提供了一个清晰的介绍,从 OpenGL 的历史到图形管线概念,也包括一些说明 OpenGL 如何工作的例子,如果你对 OpenGL 没有任何概念的话,这是不错的出发点。
      diff --git a/files/zh-cn/web/api/webgl_api/tutorial/index.html b/files/zh-cn/web/api/webgl_api/tutorial/index.html index 7f907c8f37caad..923acb5f23f90d 100644 --- a/files/zh-cn/web/api/webgl_api/tutorial/index.html +++ b/files/zh-cn/web/api/webgl_api/tutorial/index.html @@ -9,7 +9,7 @@ ---
      {{WebGLSidebar}}
      -

      WebGL 使得网页在支持 HTML {{HTMLElement("canvas")}} 标签的浏览器中,不需要使用任何插件,便可以使用基于 OpenGL ES 2.0 的 API 在 canvas 中进行 3D 渲染. WebGL 程序由 javascript 的控制代码,和在计算机的图形处理单元(GPU, Graphics Processing Unit)中执行的特效代码 (shader code,渲染代码) 组成. WebGL 元素可以和其他 HTML 元素混合,并且会和页面的其他部分或页面背景相合成。

      +

      WebGL 使得网页在支持 HTML {{HTMLElement("canvas")}} 标签的浏览器中,不需要使用任何插件,便可以使用基于 OpenGL ES 2.0 的 API 在 canvas 中进行 3D 渲染. WebGL 程序由 javascript 的控制代码,和在计算机的图形处理单元(GPU, Graphics Processing Unit)中执行的特效代码 (shader code,渲染代码) 组成。WebGL 元素可以和其他 HTML 元素混合,并且会和页面的其他部分或页面背景相合成。

      此教程从基础开始讲解如何使用<canvas> 元素来画 WebGL 图形。提供的例子会让你对 WebGL 有更清晰的认识,并且会提供代码片段方便你构建自己的内容。

      diff --git a/files/zh-cn/web/api/webgl_api/tutorial/lighting_in_webgl/index.html b/files/zh-cn/web/api/webgl_api/tutorial/lighting_in_webgl/index.html index 3894461d77d0d4..96aa25f67d16ae 100644 --- a/files/zh-cn/web/api/webgl_api/tutorial/lighting_in_webgl/index.html +++ b/files/zh-cn/web/api/webgl_api/tutorial/lighting_in_webgl/index.html @@ -82,13 +82,13 @@

      建立顶点法线

      然后我们在 drawScene() 中添加代码,将法线数组和着色器的 attribute 绑定起来以便着色器能够获取到法线数组的信息。

      -

      (此处变量 vertexNormalAttribute 应该在 initShader() 函数中声明, 并赋值: vertexNormalAttribute = gl.getAttribLocation(shaderProgram, "aVertexNormal"); gl.enableVertexAttribArray(vertexNormalAttribute);)

      +

      (此处变量 vertexNormalAttribute 应该在 initShader() 函数中声明,并赋值:vertexNormalAttribute = gl.getAttribLocation(shaderProgram, "aVertexNormal"); gl.enableVertexAttribArray(vertexNormalAttribute);)

      gl.bindBuffer(gl.ARRAY_BUFFER, cubeVerticesNormalBuffer);
       gl.vertexAttribPointer(vertexNormalAttribute, 3, gl.FLOAT, false, 0, 0);
       
      -

      最后,我们(为了读者便于理解, 此处代码应该在 setMatrixUniforms() 函数中添加)需要更新下代码,在着色器中建立和传递法线向量矩阵,用这个矩阵来处理当前立方体相对于光源位置法线向量的转换 (注:译者调试后发现此处 new WebGLFloatArray(...) 应该使用 new Float32Array()):

      +

      最后,我们(为了读者便于理解,此处代码应该在 setMatrixUniforms() 函数中添加)需要更新下代码,在着色器中建立和传递法线向量矩阵,用这个矩阵来处理当前立方体相对于光源位置法线向量的转换 (注:译者调试后发现此处 new WebGLFloatArray(...) 应该使用 new Float32Array()):

      var normalMatrix = mvMatrix.inverse();
       normalMatrix = normalMatrix.transpose();
      diff --git a/files/zh-cn/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html b/files/zh-cn/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html
      index 7ffeeb4fa8b849..f1758491c71cc3 100644
      --- a/files/zh-cn/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html
      +++ b/files/zh-cn/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html
      @@ -32,7 +32,7 @@ 

      加载纹理

      }
      -

      函数 initTextures() 首先调用 GL {{domxref("WebGLRenderingContext.createTexture()", "createTexture()")}} 函数来创建一个 GL 纹理对象 cubeTexture 。为了把图片文件加载到纹理,代码首先创建了一个 Image 对象然后把需要当作纹理使用的图形文件加载了进来。当图片加载完成后回调函数 handleTextureLoaded() 就会执行。

      +

      函数 initTextures() 首先调用 GL {{domxref("WebGLRenderingContext.createTexture()", "createTexture()")}} 函数来创建一个 GL 纹理对象 cubeTexture。为了把图片文件加载到纹理,代码首先创建了一个 Image 对象然后把需要当作纹理使用的图形文件加载了进来。当图片加载完成后回调函数 handleTextureLoaded() 就会执行。

      接下来为了真正地形成纹理,我们通过把新创建的纹理对象绑定到 gl.TEXTURE_2D 来让它成为当前操作纹理。然后通过调用 {{domxref("WebGLRenderingContext.texImage2D()", "texImage2D()")}} 把已经加载的图片图形数据写到纹理。

      diff --git a/files/zh-cn/web/api/webgl_api/webgl_best_practices/index.html b/files/zh-cn/web/api/webgl_api/webgl_best_practices/index.html index 55b4a2a6419235..abc4aa608fd120 100644 --- a/files/zh-cn/web/api/webgl_api/webgl_best_practices/index.html +++ b/files/zh-cn/web/api/webgl_api/webgl_best_practices/index.html @@ -22,8 +22,8 @@

      需要记住的事情

      • 在客户端/浏览器使用某些 WebGL 功能前,还是建议先使用 WebGL getParameter() 方法,获取此类参数的范围,这些数据反映了你的客户端能够支持的真实应用范围。例如,使用 webgl.getParameter(webgl.MAX_TEXTURE_SIZE)可以查询设备上支持的最大的 2D 纹理尺寸。从 Firefox 10 开始,WebGL 属性 webgl.min_capability_mode 则可以被用来测试最小性能模式下的实际表现,以测试可移植性。
      • 特别要注意的是,只有在 webgl.getParameter(webgl.MAX_VERTEX_TEXTURE_IMAGE_UNITS) 大于零时,才能使用 vertex shaders 中的纹理。然而,目前的移动硬件上是不支持的 (译者:待确认文档时效性)。
      • -
      • 大多数 WebGL 扩展的可用性取决于客户端。 在使用 WebGL 扩展时,如果可能的话,尝试通过优雅地适应不支持它们的情况,使它们成为可选的。从 Firefox 10 开始,属性 webgl.disable-extensions 允许模拟列出哪些扩展是不支持的,以测试可移植性。
      • -
      • 另外,即使支持 OES_texture_float 扩展,也可能不支持渲染浮点类型数据的纹理。 通常,这在当前的移动硬件上是不支持的 (译者:待确认文档时效性)。 要检查是否支持浮点类型数据,必须调用 checkFramebufferStatus() 来验证。
      • +
      • 大多数 WebGL 扩展的可用性取决于客户端。在使用 WebGL 扩展时,如果可能的话,尝试通过优雅地适应不支持它们的情况,使它们成为可选的。从 Firefox 10 开始,属性 webgl.disable-extensions 允许模拟列出哪些扩展是不支持的,以测试可移植性。
      • +
      • 另外,即使支持 OES_texture_float 扩展,也可能不支持渲染浮点类型数据的纹理。通常,这在当前的移动硬件上是不支持的 (译者:待确认文档时效性)。要检查是否支持浮点类型数据,必须调用 checkFramebufferStatus() 来验证。
      • 实际渲染到画布的分辨率可以不同于样式表最终强制画布显示的分辨率。如果考虑性能,你应该试着渲染到一个低分辨率 WebGL 上下文,并使用 CSS 来升级它的画布到你想要的尺寸。
      diff --git a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html index bdbf17c9abd2ea..f2d479728cdf92 100644 --- a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html +++ b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.html @@ -5,7 +5,7 @@ ---

      {{WebGLSidebar}}

      -

      本文探讨如何在 WebGL 项目中获取数据,并将其投影到适当的空间以在屏幕上显示。 它假定了你具备用于平移,缩放和旋转的基本矩阵数学知识。它解释了组成 3D 场景时通常使用的三个核心矩阵:模型,视图和投影矩阵。

      +

      本文探讨如何在 WebGL 项目中获取数据,并将其投影到适当的空间以在屏幕上显示。它假定了你具备用于平移,缩放和旋转的基本矩阵数学知识。它解释了组成 3D 场景时通常使用的三个核心矩阵:模型,视图和投影矩阵。

      注意:本文还可作为 MDN 内容套件 提供。它还使用 MDN全局对象下可用的 实用函数 集合。

      @@ -407,7 +407,7 @@

      除以 W

      // 透视有多大的影响? float scaleFactor = 0.5; -// 通过采用介于-1 到 1 之间的 z 值来设置 w +// 通过采用介于 -1 到 1 之间的 z 值来设置 w // 然后进行缩放为 0 到某个数,在这种情况下为 0 到 1 float w = (1.0 + transformedPosition.z) * scaleFactor; @@ -558,7 +558,7 @@

      透视矩阵

      aspectRatio
      场景的宽高比,等于其宽度除以其高度。在本示例中,就是窗口的宽度除以窗口的高度。此参数的引入最终解决了当画布调整大小和形状时模型的变形问题。
      nearClippingPlaneDistance
      -
      一个正数,表示到屏幕的距离是垂直于地板的平面的距离,该距离比将所有内容都裁剪的距离更近。它在裁剪空间中映射为-1,并且不应设置为 0。
      +
      一个正数,表示到屏幕的距离是垂直于地板的平面的距离,该距离比将所有内容都裁剪的距离更近。它在裁剪空间中映射为 -1,并且不应设置为 0。
      farClippingPlaneDistance
      一个正数,表示与平面之间的距离,超出该距离将裁剪几何体。它在裁剪空间中映射为 1.该值应保持合理的距离以接近几何图形的距离,以免在渲染时出现精度误差。
      在最新版本的盒子 demo 中, computeSimpleProjectionMatrix() 函数已替换为 computePerspectiveMatrix() 函数。
      diff --git a/files/zh-cn/web/api/webgl_lose_context/losecontext/index.html b/files/zh-cn/web/api/webgl_lose_context/losecontext/index.html index 1d3da3742187ba..4cda35b58fc8da 100644 --- a/files/zh-cn/web/api/webgl_lose_context/losecontext/index.html +++ b/files/zh-cn/web/api/webgl_lose_context/losecontext/index.html @@ -11,7 +11,7 @@ ---
      {{APIRef("WebGL")}}
      -

      WEBGL_lose_context.loseContext()属于 WebGL API, 一般用来模拟 {{domxref("WebGLRenderingContext")}} 的上下文丢失。

      +

      WEBGL_lose_context.loseContext()属于 WebGL API,一般用来模拟 {{domxref("WebGLRenderingContext")}} 的上下文丢失。

      这个方法会触发 WebGL 规范中上下文丢失的相关事件。通过这个方法丢失的上下文可以通过 {{domxref("WEBGL_lose_context.restoreContext()")}} 恢复。

      diff --git a/files/zh-cn/web/api/webgl_lose_context/restorecontext/index.html b/files/zh-cn/web/api/webgl_lose_context/restorecontext/index.html index e7203010c66997..8737a41259650d 100644 --- a/files/zh-cn/web/api/webgl_lose_context/restorecontext/index.html +++ b/files/zh-cn/web/api/webgl_lose_context/restorecontext/index.html @@ -11,7 +11,7 @@ ---
      {{APIRef("WebGL")}}
      -

      WEBGL_lose_context.restoreContext() 属于 WebGL API。 , 一般用来模拟 {{domxref("WebGLRenderingContext")}} 的上下文恢复。

      +

      WEBGL_lose_context.restoreContext() 属于 WebGL API。 ,一般用来模拟 {{domxref("WebGLRenderingContext")}} 的上下文恢复。

      语法

      diff --git a/files/zh-cn/web/api/webglbuffer/index.html b/files/zh-cn/web/api/webglbuffer/index.html index f5b81921d722b3..a7b545920fb49c 100644 --- a/files/zh-cn/web/api/webglbuffer/index.html +++ b/files/zh-cn/web/api/webglbuffer/index.html @@ -13,7 +13,7 @@

      描述

      -

      WebGLBuffer 对象没有定义任何自己的方法或属性,且内容不能被直接访问。 当使用 WebGLBuffer 对象时, {{domxref("WebGLRenderingContext")}} 下的这些方法会很有用:

      +

      WebGLBuffer 对象没有定义任何自己的方法或属性,且内容不能被直接访问。当使用 WebGLBuffer 对象时, {{domxref("WebGLRenderingContext")}} 下的这些方法会很有用:

      • {{domxref("WebGLRenderingContext.bindBuffer()")}}
      • diff --git a/files/zh-cn/web/api/webglframebuffer/index.html b/files/zh-cn/web/api/webglframebuffer/index.html index 572bcf7ab3427d..1ffa62eb6088b3 100644 --- a/files/zh-cn/web/api/webglframebuffer/index.html +++ b/files/zh-cn/web/api/webglframebuffer/index.html @@ -55,5 +55,5 @@

        参见

      • {{domxref("WebGLRenderingContext.createFramebuffer()")}}
      • {{domxref("WebGLRenderingContext.deleteFramebuffer()")}}
      • {{domxref("WebGLRenderingContext.isFramebuffer()")}}
      • -
      • 其他缓冲区: {{domxref("WebGLBuffer")}}, {{domxref("WebGLRenderbuffer")}}
      • +
      • 其他缓冲区:{{domxref("WebGLBuffer")}}, {{domxref("WebGLRenderbuffer")}}
      diff --git a/files/zh-cn/web/api/webglprogram/index.html b/files/zh-cn/web/api/webglprogram/index.html index 69962bc15b9a64..752d4e683109c7 100644 --- a/files/zh-cn/web/api/webglprogram/index.html +++ b/files/zh-cn/web/api/webglprogram/index.html @@ -24,7 +24,7 @@ if ( !gl.getProgramParameter( program, gl.LINK_STATUS) ) { var info = gl.getProgramInfoLog(program); - throw 'WebGL program 不能编译. \n\n' + info; + throw 'WebGL program 不能编译。\n\n' + info; } diff --git a/files/zh-cn/web/api/webglrenderbuffer/index.html b/files/zh-cn/web/api/webglrenderbuffer/index.html index 69e79b70aebec4..368fb9b97301bd 100644 --- a/files/zh-cn/web/api/webglrenderbuffer/index.html +++ b/files/zh-cn/web/api/webglrenderbuffer/index.html @@ -55,5 +55,5 @@

      参见

    • {{domxref("WebGLRenderingContext.createRenderbuffer()")}}
    • {{domxref("WebGLRenderingContext.deleteRenderbuffer()")}}
    • {{domxref("WebGLRenderingContext.isRenderbuffer()")}}
    • -
    • 其他缓冲: {{domxref("WebGLBuffer")}}, {{domxref("WebGLFramebuffer")}}
    • +
    • 其他缓冲:{{domxref("WebGLBuffer")}}, {{domxref("WebGLFramebuffer")}}
    • diff --git a/files/zh-cn/web/api/webglrenderingcontext/activetexture/index.html b/files/zh-cn/web/api/webglrenderingcontext/activetexture/index.html index 483b3f043d814e..6ce449a445c300 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/activetexture/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/activetexture/index.html @@ -34,7 +34,7 @@

      示例

      gl.activeTexture(gl.TEXTURE1);
       
      -

      纹理单元的数量视实现而定, 你可以通过访问常量 MAX_COMBINED_TEXTURE_IMAGE_UNITS 来获取这个值。按照规范来说,最少是 8 个。

      +

      纹理单元的数量视实现而定,你可以通过访问常量 MAX_COMBINED_TEXTURE_IMAGE_UNITS 来获取这个值。按照规范来说,最少是 8 个。

      gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);
       
      diff --git a/files/zh-cn/web/api/webglrenderingcontext/bindattriblocation/index.html b/files/zh-cn/web/api/webglrenderingcontext/bindattriblocation/index.html index bb6692ffe903c9..eeaccffb95f767 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/bindattriblocation/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/bindattriblocation/index.html @@ -23,7 +23,7 @@

      参数

      index
      {{domxref("GLuint")}} 指定要绑定的通用顶点的索引。
      name
      -
      {{domxref("DOMString")}}指定要绑定到通用顶点索引的变量的名称。 该名称不能以“webgl_”或“_webgl_”开头,因为这些名称将保留供 WebGL 使用。
      +
      {{domxref("DOMString")}}指定要绑定到通用顶点索引的变量的名称。该名称不能以“webgl_”或“_webgl_”开头,因为这些名称将保留供 WebGL 使用。

      返回值

      diff --git a/files/zh-cn/web/api/webglrenderingcontext/bindbuffer/index.html b/files/zh-cn/web/api/webglrenderingcontext/bindbuffer/index.html index b08793725bb2db..48c73aa761f4d5 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/bindbuffer/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/bindbuffer/index.html @@ -20,7 +20,7 @@

      参数

      target
      -
       {{domxref("GLenum")}} 指定绑定点 (target)。 可能的值: +
       {{domxref("GLenum")}} 指定绑定点 (target)。可能的值:
      • gl.ARRAY_BUFFER: 包含顶点属性的 Buffer,如顶点坐标,纹理坐标数据或顶点颜色数据。
      • gl.ELEMENT_ARRAY_BUFFER: 用于元素索引的 Buffer。
      • @@ -46,7 +46,7 @@

        返回值

        异常

        -

        只有一个目标可以绑定到给定的 {{domxref("WebGLBuffer")}} 。 尝试将缓冲区绑定到另一个目标将引发 INVALID_OPERATION 错误,并且当前的缓冲区绑定将保持不变。

        +

        只有一个目标可以绑定到给定的 {{domxref("WebGLBuffer")}} 。尝试将缓冲区绑定到另一个目标将引发 INVALID_OPERATION 错误,并且当前的缓冲区绑定将保持不变。

        一个被{{domxref("WebGLRenderingContext.deleteBuffer()", "deleteBuffer")}}标记为删除的{{domxref("WebGLBuffer")}}不可重新被绑定,尝试这样做将生成 INVALID_OPERATION 错误,并且当前绑定将保持不变。

        diff --git a/files/zh-cn/web/api/webglrenderingcontext/bindframebuffer/index.html b/files/zh-cn/web/api/webglrenderingcontext/bindframebuffer/index.html index d8053aa5f72e85..d302981ecf7469 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/bindframebuffer/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/bindframebuffer/index.html @@ -27,7 +27,7 @@

        参数

      • gl.FRAMEBUFFER: 收集用于渲染图像的颜色,alpha,深度和模板缓冲区的缓冲区数据存储。
      • 当使用 {{domxref("WebGL2RenderingContext", "WebGL 2 context", "", 1)}} 时,可以使用以下值:
          -
        • gl.DRAW_FRAMEBUFFER: 相当于gl.FRAMEBUFFER, 用作绘图,渲染,清除和写入操作。
        • +
        • gl.DRAW_FRAMEBUFFER: 相当于gl.FRAMEBUFFER,用作绘图,渲染,清除和写入操作。
        • gl.READ_FRAMEBUFFER: 用作读取操作的资源。
      • diff --git a/files/zh-cn/web/api/webglrenderingcontext/bindrenderbuffer/index.html b/files/zh-cn/web/api/webglrenderingcontext/bindrenderbuffer/index.html index 29fa9fad25f184..07b1539ce25a2f 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/bindrenderbuffer/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/bindrenderbuffer/index.html @@ -11,7 +11,7 @@ ---
        {{APIRef("WebGL")}}
        -

        WebGL API 的 WebGLRenderingContext.bindRenderbuffer() 方法将给定的 {{domxref("WebGLRenderbuffer")}} 绑定到一个目标,它必须是 gl.RENDERBUFFER 。

        +

        WebGL API 的 WebGLRenderingContext.bindRenderbuffer() 方法将给定的 {{domxref("WebGLRenderbuffer")}} 绑定到一个目标,它必须是 gl.RENDERBUFFER。

        语法

        @@ -22,7 +22,7 @@

        参数

        target
        -
        {{domxref("GLenum")}} 指定绑定点(目标)。 可能的值: +
        {{domxref("GLenum")}} 指定绑定点(目标)。可能的值:
        • gl.RENDERBUFFER: 以可渲染的内部格式对单个图像进行缓冲数据存储。
        diff --git a/files/zh-cn/web/api/webglrenderingcontext/bindtexture/index.html b/files/zh-cn/web/api/webglrenderingcontext/bindtexture/index.html index 5f6148c07515f6..d7b2f4c23b7dcc 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/bindtexture/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/bindtexture/index.html @@ -23,7 +23,7 @@

        参数

        target
        -
        {{domxref("GLenum")}} 指定绑定点(目标)。 可能的值: +
        {{domxref("GLenum")}} 指定绑定点(目标)。可能的值:
        • gl.TEXTURE_2D: 二维纹理。
        • gl.TEXTURE_CUBE_MAP: 立方体映射纹理。
        • @@ -45,7 +45,7 @@

          返回值

          异常

          -

          如果目标不是 gl.TEXTURE_2D ,gl.TEXTURE_CUBE_MAP,gl.TEXTURE_3D 或 gl.TEXTURE_2D_ARRAY ,则会抛出 gl.INVALID_ENUM 错误。

          +

          如果目标不是 gl.TEXTURE_2D,gl.TEXTURE_CUBE_MAP,gl.TEXTURE_3D 或 gl.TEXTURE_2D_ARRAY,则会抛出 gl.INVALID_ENUM 错误。

          示例

          diff --git a/files/zh-cn/web/api/webglrenderingcontext/blendequation/index.html b/files/zh-cn/web/api/webglrenderingcontext/blendequation/index.html index 9824872053dd74..50935a7015329a 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/blendequation/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/blendequation/index.html @@ -24,7 +24,7 @@

          参数

          mode
          -
          {{domxref("GLenum")}} 指定源和目标颜色的组合方式。 必须是: +
          {{domxref("GLenum")}} 指定源和目标颜色的组合方式。必须是:
          • gl.FUNC_ADD: 源 + 目的地(默认值),
          • gl.FUNC_SUBTRACT: 源 - 目的地,
          • @@ -62,7 +62,7 @@

            示例

            gl.blendEquation(gl.FUNC_REVERSE_SUBTRACT); -

            要获得混合方程,请查询返回 gl.FUNC_ADD,gl.FUNC_SUBTRACT,gl.FUNC_REVERSE_SUBTRACT 或 {{domxref("EXT_blend_minmax")}} 的 BLEND_EQUATION,BLEND_EQUATION_RGB 和 BLEND_EQUATION_ALPHA 常量:ext.MIN_EXT 或 ext.MAX_EXT 。

            +

            要获得混合方程,请查询返回 gl.FUNC_ADD,gl.FUNC_SUBTRACT,gl.FUNC_REVERSE_SUBTRACT 或 {{domxref("EXT_blend_minmax")}} 的 BLEND_EQUATION,BLEND_EQUATION_RGB 和 BLEND_EQUATION_ALPHA 常量:ext.MIN_EXT 或 ext.MAX_EXT。

            gl.getParameter(gl.BLEND_EQUATION_RGB) === gl.FUNC_ADD;
             // true
            diff --git a/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.html b/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.html
            index d1fa2bdc1adfb7..7b10dcb2c4ea3d 100644
            --- a/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.html
            +++ b/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.html
            @@ -36,7 +36,7 @@ 

            常量

            下列常数可用于  sfactordfactor.

            -

            混合颜色的公式可以这样描述: color(RGBA) = (sourceColor * sfactor) + (destinationColor * dfactor). RBGA 值在 0 到 1 之间。

            +

            混合颜色的公式可以这样描述:color(RGBA) = (sourceColor * sfactor) + (destinationColor * dfactor). RBGA 值在 0 到 1 之间。

      说明(Specification )说明(Specification) 状态(Status) 意见(Comment)
      LINES 0x0001传递给  drawElements 或drawArrays 画线段。 每个顶点链接到它的下一个顶点。每两点画一条线段。传递给  drawElements 或drawArrays 画线段。每个顶点链接到它的下一个顶点。每两点画一条线段。
      LINE_LOOP
      TRIANGLES 0x0004传递给drawElements 或drawArrays画三角形。 每三个点创建一个独立的三角形。传递给drawElements 或drawArrays画三角形。每三个点创建一个独立的三角形。
      TRIANGLE_STRIP
      CULL_FACE_MODE 0x0B45传递给 getParameter 获取当前的cullFace 值。 应该返回 FRONT, BACK, 或 FRONT_AND_BACK传递给 getParameter 获取当前的cullFace 值。应该返回 FRONT, BACK, 或 FRONT_AND_BACK
      FRONT_FACE
      DEPTH_TEST 0x0B71通过 enable/disable 来打开/关闭深度测试。 也可以使用 getParameter 来查询深度测试。LEQUAL通过 enable/disable 来打开/关闭深度测试。也可以使用 getParameter 来查询深度测试。LEQUAL
      DITHER
      diff --git a/files/zh-cn/web/api/webglrenderingcontext/cleardepth/index.html b/files/zh-cn/web/api/webglrenderingcontext/cleardepth/index.html index c90c0798b4b292..09d9a2399c9829 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/cleardepth/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/cleardepth/index.html @@ -21,7 +21,7 @@

      参数

      depth
      -
      类型:{{domxref("GLclampf")}}。 深度值的设定,是当清除深度缓冲区的时候使用。默认值为 1。
      +
      类型:{{domxref("GLclampf")}}。深度值的设定,是当清除深度缓冲区的时候使用。默认值为 1。

      返回值

      diff --git a/files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html b/files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html index 0bd661e14cbdca..a78a5d8eb34809 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/compressedteximage2d/index.html @@ -9,7 +9,7 @@

      WebGLRenderingContext.compressedTexImage2D()  and WebGL2RenderingContext.compressedTexImage3D()WebGL API 中特指压缩二维或三维纹理图像的格式。

      -

      在使用这些方法之前,必须通过 WebGL extensions, 也就是 WebGL 扩展启用压缩图像格式。

      +

      在使用这些方法之前,必须通过 WebGL extensions,也就是 WebGL 扩展启用压缩图像格式。

      Syntax

      diff --git a/files/zh-cn/web/api/webglrenderingcontext/depthfunc/index.html b/files/zh-cn/web/api/webglrenderingcontext/depthfunc/index.html index f0d2c78a5c75a7..cb2ab6f3ae9484 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/depthfunc/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/depthfunc/index.html @@ -36,7 +36,7 @@

      返回值

      示例

      -

      深度测试默认是禁用的。 要启用或禁用深度测试,请使用带有参数  gl.DEPTH_TEST 的 {{domxref("WebGLRenderingContext.enable", "enable()")}} 和 {{domxref("WebGLRenderingContext.disable", "disable()")}} 方法。

      +

      深度测试默认是禁用的。要启用或禁用深度测试,请使用带有参数  gl.DEPTH_TEST 的 {{domxref("WebGLRenderingContext.enable", "enable()")}} 和 {{domxref("WebGLRenderingContext.disable", "disable()")}} 方法。

      gl.enable(gl.DEPTH_TEST);
       gl.depthFunc(gl.NEVER);
      diff --git a/files/zh-cn/web/api/webglrenderingcontext/drawarrays/index.html b/files/zh-cn/web/api/webglrenderingcontext/drawarrays/index.html
      index 3b0b40b059abf3..643ac3f6d59ac5 100644
      --- a/files/zh-cn/web/api/webglrenderingcontext/drawarrays/index.html
      +++ b/files/zh-cn/web/api/webglrenderingcontext/drawarrays/index.html
      @@ -30,7 +30,7 @@ 

      参数

      first
      -
      {{domxref("GLint")}} 类型 ,指定从哪个点开始绘制。
      +
      {{domxref("GLint")}} 类型,指定从哪个点开始绘制。
      count
      {{domxref("GLsizei")}} 类型,指定绘制需要使用到多少个点。
      diff --git a/files/zh-cn/web/api/webglrenderingcontext/drawingbufferheight/index.html b/files/zh-cn/web/api/webglrenderingcontext/drawingbufferheight/index.html index f8f004d98ffad5..5b38b79e9aca5c 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/drawingbufferheight/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/drawingbufferheight/index.html @@ -12,7 +12,7 @@ ---
      {{APIRef("WebGL")}}
      -

      WebGLRenderingContext.drawingBufferHeight 只读属性,指示当前绘图缓冲区的实际高度。它应当匹配与绘图上下文相关联的 {{HTMLElement("canvas")}} 元素的高度属性, 如果实现未能提供所要求的高度,其值将有所不同。

      +

      WebGLRenderingContext.drawingBufferHeight 只读属性,指示当前绘图缓冲区的实际高度。它应当匹配与绘图上下文相关联的 {{HTMLElement("canvas")}} 元素的高度属性,如果实现未能提供所要求的高度,其值将有所不同。

      语法

      diff --git a/files/zh-cn/web/api/webglrenderingcontext/getattriblocation/index.html b/files/zh-cn/web/api/webglrenderingcontext/getattriblocation/index.html index 27fbf71ea95bca..7aeb6cc872781d 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/getattriblocation/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/getattriblocation/index.html @@ -23,7 +23,7 @@

      参数

      返回值

      -

      表明属性位置的下标 {{domxref("GLint")}} 数字,如果找不到该属性则返回-1。

      +

      表明属性位置的下标 {{domxref("GLint")}} 数字,如果找不到该属性则返回 -1。

      示例

      diff --git a/files/zh-cn/web/api/webglrenderingcontext/index.html b/files/zh-cn/web/api/webglrenderingcontext/index.html index b701b3d21d59f9..f1569a9d1c8392 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/index.html @@ -10,7 +10,7 @@

      WebGLRenderingContext 接口提供基于 OpenGL ES 2.0 的绘图上下文,用于在 HTML {{HTMLElement("canvas")}} 元素内绘图。 

      -

      要获得这个接口的对象,可以通过在 <canvas> 元素上调用 {{domxref("HTMLCanvasElement.getContext()", "getContext()")}} 函数,调用时传入 “webgl” 参数:

      +

      要获得这个接口的对象,可以通过在 <canvas> 元素上调用 {{domxref("HTMLCanvasElement.getContext()", "getContext()")}} 函数,调用时传入“webgl”参数:

      var canvas = document.getElementById('myCanvas');
       var gl = canvas.getContext('webgl');
      diff --git a/files/zh-cn/web/api/webglrenderingcontext/pixelstorei/index.html b/files/zh-cn/web/api/webglrenderingcontext/pixelstorei/index.html
      index eda3b347d7a16c..0665564b7b3f5a 100644
      --- a/files/zh-cn/web/api/webglrenderingcontext/pixelstorei/index.html
      +++ b/files/zh-cn/web/api/webglrenderingcontext/pixelstorei/index.html
      @@ -16,7 +16,7 @@ 

      参数

      pname
      -
       {{domxref("Glenum")}} 类型 ,表示处理的方式。关于该参数可选值,请见下面表格。
      +
       {{domxref("Glenum")}} 类型,表示处理的方式。关于该参数可选值,请见下面表格。
      param
       {{domxref("GLint")}}  类型,表示 pname 处理方式的参数。关于该参数可选值,请见下面表格。
      diff --git a/files/zh-cn/web/api/webglrenderingcontext/teximage2d/index.html b/files/zh-cn/web/api/webglrenderingcontext/teximage2d/index.html index 9b92ffb24a40b7..585cc33336556a 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/teximage2d/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/teximage2d/index.html @@ -43,7 +43,7 @@

      参数

      level
      -
       {{domxref("GLint")}} 指定详细级别. 0 级是基本图像等级,n 级是第 n 个金字塔简化级。
      +
       {{domxref("GLint")}} 指定详细级别。0 级是基本图像等级,n 级是第 n 个金字塔简化级。
      internalformat
       {{domxref("GLenum")}} 指定纹理中的颜色组件。
      在 WebGL1 和 WebGL2 中可能的值:
      diff --git a/files/zh-cn/web/api/webglrenderingcontext/validateprogram/index.html b/files/zh-cn/web/api/webglrenderingcontext/validateprogram/index.html index 69238efc044cf9..85f13b7ed53db1 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/validateprogram/index.html +++ b/files/zh-cn/web/api/webglrenderingcontext/validateprogram/index.html @@ -41,7 +41,7 @@

      Examples

      if ( !gl.getProgramParameter( program, gl.LINK_STATUS) ) { var info = gl.getProgramInfoLog(program); - throw '不能编译 WebGL 程序. \n\n' + info; + throw '不能编译 WebGL 程序。\n\n' + info; } gl.useProgram(program); diff --git a/files/zh-cn/web/api/webglshader/index.html b/files/zh-cn/web/api/webglshader/index.html index 4288f3c263c22f..6753c9a87d8332 100644 --- a/files/zh-cn/web/api/webglshader/index.html +++ b/files/zh-cn/web/api/webglshader/index.html @@ -13,7 +13,7 @@

      描述

      -

      要创建一个 WebGLShader 需要使用 {{domxref("WebGLRenderingContext.createShader")}},通过 {{domxref("WebGLRenderingContext.shaderSource()")}} 然后挂接 GLSL 源代码 , 最后调用 {{domxref("WebGLRenderingContext.compileShader()")}} 完成着色器(shader)的编译。 此时 WebGLShader 仍不是可用的形式,他需要被添加到一个 {{domxref("WebGLProgram")}}里。

      +

      要创建一个 WebGLShader 需要使用 {{domxref("WebGLRenderingContext.createShader")}},通过 {{domxref("WebGLRenderingContext.shaderSource()")}} 然后挂接 GLSL 源代码 , 最后调用 {{domxref("WebGLRenderingContext.compileShader()")}} 完成着色器(shader)的编译。此时 WebGLShader 仍不是可用的形式,他需要被添加到一个 {{domxref("WebGLProgram")}}里。

      function createShader (gl, sourceCode, type) {
         // Compiles either a shader of type gl.VERTEX_SHADER or gl.FRAGMENT_SHADER
      @@ -33,7 +33,7 @@ 

      描述

      范例

      -

      创建一个顶点着色器( vertex shader)

      +

      创建一个顶点着色器(vertex shader)

      注意,有很多其他方式编译和访问着色器(shader)源代码字符串. 这些示例仅用于例证说明。

      diff --git a/files/zh-cn/web/api/webgltexture/index.html b/files/zh-cn/web/api/webgltexture/index.html index 50313e56cde1d8..9f5b25339f2838 100644 --- a/files/zh-cn/web/api/webgltexture/index.html +++ b/files/zh-cn/web/api/webgltexture/index.html @@ -11,7 +11,7 @@

      描述

      -

      WebGLTexture对象自身未定义任何属性或方法, 其内容无法被直接访问。当使用WebGLTexture对象时, {{domxref("WebGLRenderingContext")}} 里的这些方法会很有用:

      +

      WebGLTexture对象自身未定义任何属性或方法,其内容无法被直接访问。当使用WebGLTexture对象时, {{domxref("WebGLRenderingContext")}} 里的这些方法会很有用:

      • {{domxref("WebGLRenderingContext.bindTexture()")}}
      • diff --git a/files/zh-cn/web/api/webrtc_api/adapter.js/index.html b/files/zh-cn/web/api/webrtc_api/adapter.js/index.html index 818952ae52cf63..9716455ee01f11 100644 --- a/files/zh-cn/web/api/webrtc_api/adapter.js/index.html +++ b/files/zh-cn/web/api/webrtc_api/adapter.js/index.html @@ -23,7 +23,7 @@

        adapter.js 是干什么的

        使用 adapter.js

        -

        要使用 adapter.js,你需要在使用 WebRTC APIs 的每个页面都引入 adapter.js :

        +

        要使用 adapter.js,你需要在使用 WebRTC APIs 的每个页面都引入 adapter.js:

        1. 从 GitHub 上下载一个最新adapter.js的副本。
        2. diff --git a/files/zh-cn/web/api/webrtc_api/connectivity/index.html b/files/zh-cn/web/api/webrtc_api/connectivity/index.html index 01da2f107d13ac..ca91220649c866 100644 --- a/files/zh-cn/web/api/webrtc_api/connectivity/index.html +++ b/files/zh-cn/web/api/webrtc_api/connectivity/index.html @@ -14,7 +14,7 @@ ---

          {{WebRTCSidebar}}

          -

          现在我们已经单独介绍了协议,我们可以将它们放在一起。 本文介绍了 WebRTC 各种相关协议如何相互交互,以便在对等体之间创建连接和传输数据和/或媒体。

          +

          现在我们已经单独介绍了协议,我们可以将它们放在一起。本文介绍了 WebRTC 各种相关协议如何相互交互,以便在对等体之间创建连接和传输数据和/或媒体。

          这个页面需要对结构完整性和内容完整性进行大量重写。这里有很多信息,但是组织混乱,现在这里跟个垃圾场一样。

          @@ -22,21 +22,21 @@

          什么是提议/应答和信号通道?

          -

          不幸的是,WebRTC 中间无法创建没有某种服务器的连接。 我们称之为信号通道。 无论是通过电子邮件,明信片还是一只信鸽...,都可以通过任何通信方式交换信息,这取决于你。

          +

          不幸的是,WebRTC 中间无法创建没有某种服务器的连接。我们称之为信号通道。无论是通过电子邮件,明信片还是一只信鸽...,都可以通过任何通信方式交换信息,这取决于你。

          我们需要交换的信息是提议和应答,其中仅包含下面提到的 SDP。

          -

          将作为连接发起者的同伴 A 将创建一个提议。 然后他们将使用所选择的信号通道将此提议发送给对等体 B. 对等体 B 将从信号通道接收提议并创建应答。 然后,它们将沿着信号通道发送回对等体 A。

          +

          将作为连接发起者的同伴 A 将创建一个提议。然后他们将使用所选择的信号通道将此提议发送给对等体 B. 对等体 B 将从信号通道接收提议并创建应答。然后,它们将沿着信号通道发送回对等体 A。

          会话描述

          -

          WebRTC 连接上的端点配置称为会话描述。 该描述包括关于要发送的媒体类型,其格式,正在使用的传输协议,端点的 IP 地址和端口以及描述媒体传输端点所需的其他信息的信息。 使用会话描述协议({{Glossary("SDP")}}) 来交换和存储该信息; 如果您想要有关 SDP 数据格式的详细信息,可以在{{RFC(2327)}}中找到。

          +

          WebRTC 连接上的端点配置称为会话描述。该描述包括关于要发送的媒体类型,其格式,正在使用的传输协议,端点的 IP 地址和端口以及描述媒体传输端点所需的其他信息的信息。使用会话描述协议({{Glossary("SDP")}}) 来交换和存储该信息; 如果您想要有关 SDP 数据格式的详细信息,可以在{{RFC(2327)}}中找到。

          -

          当用户对另一个用户启动 WebRTC 调用时,将创建一个称为提议(offer) 的特定描述。 该描述包括有关呼叫者建议的呼叫配置的所有信息。 接收者然后用应答(answer) 进行响应,这是他们对呼叫结束的描述。 以这种方式,两个设备彼此共享以便交换媒体数据所需的信息。 该交换是使用交互式连接建立 (ICE)({{Glossary("ICE")}}处理的,这是一种协议,即使两个设备通过网络地址转换 ({{Glossary( "NAT")}})。

          +

          当用户对另一个用户启动 WebRTC 调用时,将创建一个称为提议(offer) 的特定描述。该描述包括有关呼叫者建议的呼叫配置的所有信息。接收者然后用应答(answer) 进行响应,这是他们对呼叫结束的描述。以这种方式,两个设备彼此共享以便交换媒体数据所需的信息。该交换是使用交互式连接建立 (ICE)({{Glossary("ICE")}}处理的,这是一种协议,即使两个设备通过网络地址转换 ({{Glossary( "NAT")}})。

          然后,每个对等端保持两个描述:描述本身的本地描述和描述呼叫的远端的远程描述

          -

          在首次建立呼叫时,还可以在呼叫格式或其他配置需要更改的任何时候执行提议/应答过程。 无论是新呼叫还是重新配置现有的呼叫,这些都是交换提议和回答所必需的基本步骤,暂时忽略了 ICE 层:

          +

          在首次建立呼叫时,还可以在呼叫格式或其他配置需要更改的任何时候执行提议/应答过程。无论是新呼叫还是重新配置现有的呼叫,这些都是交换提议和回答所必需的基本步骤,暂时忽略了 ICE 层:

          1. 呼叫者通过 {{domxref("navigator.mediaDevices.getUserMedia()")}} 捕捉本地媒体。
          2. @@ -56,28 +56,28 @@

            会话描述

            待定的和当前描述

            -

            进一步了解该过程,我们发现 localDescription 和 remoteDescription(返回这两个描述的属性 ) 并不像外观那样简单。 因为在重新协商期间,提议可能会被拒绝,因为它提出了不兼容的格式,每个端点都有能力提出一种新的格式,但是实际上不会切换到另一个对等体,直到它被其他对等体接受为止。 因此,WebRTC 使用待定和当前的描述。

            +

            进一步了解该过程,我们发现 localDescription 和 remoteDescription(返回这两个描述的属性 ) 并不像外观那样简单。因为在重新协商期间,提议可能会被拒绝,因为它提出了不兼容的格式,每个端点都有能力提出一种新的格式,但是实际上不会切换到另一个对等体,直到它被其他对等体接受为止。因此,WebRTC 使用待定和当前的描述。

            -

            当前描述(由 {{domxref("RTCPeerConnection.currentLocalDescription")}} 和 {{domxref("RTCPeerConnection.currentRemoteDescription")}} 属性返回 ) 表示连接实际使用的描述。 这是双方已经完全同意使用的最新连接。

            +

            当前描述(由 {{domxref("RTCPeerConnection.currentLocalDescription")}} 和 {{domxref("RTCPeerConnection.currentRemoteDescription")}} 属性返回 ) 表示连接实际使用的描述。这是双方已经完全同意使用的最新连接。

            待定的描述(由 {{domxref("RTCPeerConnection.pendingLocalDescription")}} 和 {{domxref("RTCPeerConnection.pendingRemoteDescription")}} 返回 ) 表示当 分别调用 setLocalDescription() 或 setRemoteDescription()。

            当读取描述 ( {{domxref("RTCPeerConnection.localDescription")}} 和 {{domxref("RTCPeerConnection.remoteDescription")}} ) 返回时,返回的值是 pendingLocalDescription / pendingRemoteDescription 的值,如果有待处理的描述 ( 也就是说,待处理描述不为 null ); 否则,返回当前描述 (currentLocalDescription / currentRemoteDescription )。

            -

            通过调用 setLocalDescription() 或 setRemoteDescription() 更改描述时,将指定的描述设置为待定描述,WebRTC 层开始评估是否可以接受。 一旦建议的描述已经达成一致,currentLocalDescription 或 currentRemoteDescription 的值将更改为待处理描述,并且待处理的描述再次设置为 null,表示没有待处理的描述。

            +

            通过调用 setLocalDescription() 或 setRemoteDescription() 更改描述时,将指定的描述设置为待定描述,WebRTC 层开始评估是否可以接受。一旦建议的描述已经达成一致,currentLocalDescription 或 currentRemoteDescription 的值将更改为待处理描述,并且待处理的描述再次设置为 null,表示没有待处理的描述。

            -

            pendingLocalDescription 不仅包含正在考虑的提议或答案,而且自从提议或应答以来已经收集到的任何本地 ICE 候选人都被创建。 类似地,pendingRemoteDescription 包括通过调用 {{domxref("RTCPeerConnection.addIceCandidate()")}} 提供的任何远程 ICE 候选。

            +

            pendingLocalDescription 不仅包含正在考虑的提议或答案,而且自从提议或应答以来已经收集到的任何本地 ICE 候选人都被创建。类似地,pendingRemoteDescription 包括通过调用 {{domxref("RTCPeerConnection.addIceCandidate()")}} 提供的任何远程 ICE 候选。

            有关这些属性和方法的更多细节,请参阅各个文章。

            什么是 ICE 候选地址?

            -

            除了交换关于媒体的信息 (上面提到的 Offer / Answer 和 SDP ) 中,对等体必须交换关于网络连接的信息。 这被称为 ICE 候选者,并详细说明了对等体能够直接或通过 TURN 服务器进行通信的可用方法。 通常,每个对点将优先提出最佳的 ICE 候选,逐次尝试到不佳的候选中。 理想情况下,候选地址是 UDP(因为速度更快,媒体流能够相对容易地从中断恢复 ),但 ICE 标准也允许 TCP 候选。

            +

            除了交换关于媒体的信息 (上面提到的 Offer / Answer 和 SDP ) 中,对等体必须交换关于网络连接的信息。这被称为 ICE 候选者,并详细说明了对等体能够直接或通过 TURN 服务器进行通信的可用方法。通常,每个对点将优先提出最佳的 ICE 候选,逐次尝试到不佳的候选中。理想情况下,候选地址是 UDP(因为速度更快,媒体流能够相对容易地从中断恢复 ),但 ICE 标准也允许 TCP 候选。

            -

            一般来说,使用 TCP 的 ICE 候选者只有当 UDP 不可用或被限制使其不适用于媒体流时才会被使用。 不是所有的浏览器都支持 ICE over TCP。

            +

            一般来说,使用 TCP 的 ICE 候选者只有当 UDP 不可用或被限制使其不适用于媒体流时才会被使用。不是所有的浏览器都支持 ICE over TCP。

            The entire exchange in a complicated diagram

            diff --git a/files/zh-cn/web/api/webrtc_api/protocols/index.html b/files/zh-cn/web/api/webrtc_api/protocols/index.html index f22c0443b1e423..00e17260ae46cd 100644 --- a/files/zh-cn/web/api/webrtc_api/protocols/index.html +++ b/files/zh-cn/web/api/webrtc_api/protocols/index.html @@ -57,14 +57,14 @@

            SDP

            结构体

            -

            SDP 由一行或多行 UTF-8 文本组成,每行以一个字符的类型开头,后跟等号(“ =”),然后是包含值或描述的结构化文本,其格式取决于类型。以给定字母开头的文本行通常称为“字母行”。例如,提供媒体描述的行的类型为“ m”,因此这些行称为“ m 行”。

            +

            SDP 由一行或多行 UTF-8 文本组成,每行以一个字符的类型开头,后跟等号(“ =”),然后是包含值或描述的结构化文本,其格式取决于类型。以给定字母开头的文本行通常称为“字母行”。例如,提供媒体描述的行的类型为“m”,因此这些行称为“m 行”。

            获取更多信息

            要了解有关 SDP 的更多信息,请参见以下有用的资源:

              -
            • 规范: {{RFC(4566, "SDP: Session Description Protocol")}}
            • +
            • 规范:{{RFC(4566, "SDP: Session Description Protocol")}}
            • IANA registry of SDP parameters
            diff --git a/files/zh-cn/web/api/webrtc_api/session_lifetime/index.html b/files/zh-cn/web/api/webrtc_api/session_lifetime/index.html index 52fba98d0e8d4c..8e386d2f6706b8 100644 --- a/files/zh-cn/web/api/webrtc_api/session_lifetime/index.html +++ b/files/zh-cn/web/api/webrtc_api/session_lifetime/index.html @@ -7,30 +7,30 @@

            此页面正在建设中,部分内容会移至其他页面,因为 WebRTC 指导资料已经建成。

            -

            WebRTC 允许您将任意数据,音频或视频(或其任何组合)的点对点通信构建到浏览器应用程序中。 在本文中,我们将介绍一个 WebRTC 会话的生命周期,从建立连接到不再需要时关闭连接。

            +

            WebRTC 允许您将任意数据,音频或视频(或其任何组合)的点对点通信构建到浏览器应用程序中。在本文中,我们将介绍一个 WebRTC 会话的生命周期,从建立连接到不再需要时关闭连接。

            创建连接

            -

            互联网很大 很大。 那么多年以前,聪明的人看到它有多大,增长速度有多快,32 位 IP 寻址系统的局限性,并意识到有些事情要做,所以他们开始设计一个新的 64 位寻址系统。 但是他们意识到,完成转换需要更长时间才能持续 32 位地址,所以其他一些机智的人们想出了让多台计算机共享同一个 32 位 IP 地址的方法。 网络地址转换(NAT)是通过操纵 LAN 上的所有设备的数据出入的路由来支持这种地址共享的标准,所有这些设备都共享同一个 WAN(全局)IP 地址。

            +

            互联网很大 很大。那么多年以前,聪明的人看到它有多大,增长速度有多快,32 位 IP 寻址系统的局限性,并意识到有些事情要做,所以他们开始设计一个新的 64 位寻址系统。但是他们意识到,完成转换需要更长时间才能持续 32 位地址,所以其他一些机智的人们想出了让多台计算机共享同一个 32 位 IP 地址的方法。网络地址转换(NAT)是通过操纵 LAN 上的所有设备的数据出入的路由来支持这种地址共享的标准,所有这些设备都共享同一个 WAN(全局)IP 地址。

            -

            用户的问题是互联网上的每台个人计算机不再一定具有唯一的 IP 地址,实际上,每个设备的 IP 地址也会变,不仅可能由于设备从一个网络移动到另一个网络,也可能被 NAT 和/或 DHCP 改变。 对于尝试进行点对点网络的开发人员,这引入了一个难题:没有每个用户设备的唯一标识符,不可能立即自动地知道如何连接到 Internet 上的特定设备。 即使你知道你想谈论的人,你不一定知道如何到达他们,甚至也不知道他们的地址。

            +

            用户的问题是互联网上的每台个人计算机不再一定具有唯一的 IP 地址,实际上,每个设备的 IP 地址也会变,不仅可能由于设备从一个网络移动到另一个网络,也可能被 NAT 和/或 DHCP 改变。对于尝试进行点对点网络的开发人员,这引入了一个难题:没有每个用户设备的唯一标识符,不可能立即自动地知道如何连接到 Internet 上的特定设备。即使你知道你想谈论的人,你不一定知道如何到达他们,甚至也不知道他们的地址。

            -

            这就像您尝试向您的朋友 Michelle 发送一个包裹,但您只在这个包裹上贴了一个写着“Michelle”的标签,而您并不知道她的地址。 您得查到她的地址并将其包装在包中,要不然她会在想为什么你又忘记她的生日了。

            +

            这就像您尝试向您的朋友 Michelle 发送一个包裹,但您只在这个包裹上贴了一个写着“Michelle”的标签,而您并不知道她的地址。您得查到她的地址并将其包装在包中,要不然她会在想为什么你又忘记她的生日了。

            这就是信令(Signaling)的由来。

            信令

            -

            信令是在两个设备之间发送控制信息以确定通信协议、信道、媒体编解码器和格式以及数据传输方法以及任何所需的路由信息的过程。 关于 WebRTC 的信令流程最重要的一点是:信令在规范中并没有定义。所以开发者需要自己决定如何实现这个过程。开发者可以为应用程序引擎选择任意的信息协议(如 SIP 或 XMPP),任意双向通信信道(如 WebSocket 或 XMLHttpRequest) 与持久连接服务器的 API(如Google Channel API)一起工作。

            +

            信令是在两个设备之间发送控制信息以确定通信协议、信道、媒体编解码器和格式以及数据传输方法以及任何所需的路由信息的过程。关于 WebRTC 的信令流程最重要的一点是:信令在规范中并没有定义。所以开发者需要自己决定如何实现这个过程。开发者可以为应用程序引擎选择任意的信息协议(如 SIP 或 XMPP),任意双向通信信道(如 WebSocket 或 XMLHttpRequest) 与持久连接服务器的 API(如Google Channel API)一起工作。

            -

            你可能会想,为什么这么一个对于建立 WebRTC 连接至关重要的基本过程居然没有定义在规范里? 答案很简单:由于两个设备无法直接相互联系,规范无法预测 WebRTC 的所有可能用例,因此更明智的做法就是让开发人员们自己选择合适的网络技术和消息传递协议。

            +

            你可能会想,为什么这么一个对于建立 WebRTC 连接至关重要的基本过程居然没有定义在规范里?答案很简单:由于两个设备无法直接相互联系,规范无法预测 WebRTC 的所有可能用例,因此更明智的做法就是让开发人员们自己选择合适的网络技术和消息传递协议。

            -

            尤其是如果一个开发人员已经有了一个连接两个设备的方法,那也没有必要强迫他们就为了 WebRTC 使用另一个规范定义的方法。 由于 WebRTC 没有生活在真空中,所以可能还有其他的连接,因此,如果可以使用已有的连接通道,就可以避免添加额外的连接通道。

            +

            尤其是如果一个开发人员已经有了一个连接两个设备的方法,那也没有必要强迫他们就为了 WebRTC 使用另一个规范定义的方法。由于 WebRTC 没有生活在真空中,所以可能还有其他的连接,因此,如果可以使用已有的连接通道,就可以避免添加额外的连接通道。

            为了交换信令信息,您可以选择通过 WebSocket 连接来回发送 JSON 对象,或者您可以在适当的通道(Channel)上使用 XMPP 或 SIP,或者您可以通过 HTTPS 使用 XMLHttpRequest 进行轮询或者其他任何你可以想出来的技术组合。你甚至可以使用电子邮件作为信号通道。

            -

            还值得注意的是,用于执行信令的信道甚至不需要通过网络。 一个 Peer 可以输出一个数据对象,这个数据对象可以被打印出来,然后物理携带(步行或由信鸽)直到进入另一个设备,然后由该设备输出响应,并以同种方式返回, 直到 WebRTC 对等连接打开。 这将带来非常高的延迟,但也是可以做到的。

            +

            还值得注意的是,用于执行信令的信道甚至不需要通过网络。一个 Peer 可以输出一个数据对象,这个数据对象可以被打印出来,然后物理携带(步行或由信鸽)直到进入另一个设备,然后由该设备输出响应,并以同种方式返回,直到 WebRTC 对等连接打开。这将带来非常高的延迟,但也是可以做到的。

            信令期间交换的信息

            @@ -39,12 +39,12 @@

            信令期间交换的信息

            • 控制消息:用于设置、打开、关闭通信通道并处理错误。
            • 为了建立连接所需的信息:设备间能够彼此交谈所需的 IP 寻址和端口信息。
            • -
            • 媒体能力协商:交互双方可以理解哪些编解码器和媒体数据格式? 这些都需要在 WebRTC 会议开始之前达成一致。
            • +
            • 媒体能力协商:交互双方可以理解哪些编解码器和媒体数据格式?这些都需要在 WebRTC 会议开始之前达成一致。

            只有在信令成功完成之后,打开 WebRTC 对等连接的过程才真正开始。

            -

            值得注意的是,在信令期间,信令服务器实际上不需要理解两个设备之间交换的数据或者对这些数据做任何处理。 信令服务器本质上就是一个中继器:两端连接的公共点,两端都知道它们的信令数据可以通过这个点来传输。 服务器不需要以任何方式对此信息做出反应。

            +

            值得注意的是,在信令期间,信令服务器实际上不需要理解两个设备之间交换的数据或者对这些数据做任何处理。信令服务器本质上就是一个中继器:两端连接的公共点,两端都知道它们的信令数据可以通过这个点来传输。服务器不需要以任何方式对此信息做出反应。

            信令过程

            @@ -62,15 +62,15 @@

            信令过程

            ICE 重连

            -

            有时,在 WebRTC 会话的整个生命周期内,网络条件会发生变化。 其中一个用户可能会从蜂窝网络转移到 WiFi 网络,或者网络可能会变得拥塞。 当这种情况发生时,ICE 代理可以选择执行 ICE 重连。 在这个过程中网络连接会进行重新协商,与执行初始 ICE 协商的方式完全相同,除了:媒体继续流过原始网络连接直到新的开始运行。 然后媒体转移到新的网络连接,旧的关闭。

            +

            有时,在 WebRTC 会话的整个生命周期内,网络条件会发生变化。其中一个用户可能会从蜂窝网络转移到 WiFi 网络,或者网络可能会变得拥塞。当这种情况发生时,ICE 代理可以选择执行 ICE 重连。在这个过程中网络连接会进行重新协商,与执行初始 ICE 协商的方式完全相同,除了:媒体继续流过原始网络连接直到新的开始运行。然后媒体转移到新的网络连接,旧的关闭。

            -

            不同的浏览器支持在不同情况下的进行 ICE 重连。 例如,并不是所有的浏览器都会因为网络拥塞执行 ICE 重连。

            +

            不同的浏览器支持在不同情况下的进行 ICE 重连。例如,并不是所有的浏览器都会因为网络拥塞执行 ICE 重连。

            -

            ICE 重连有两个级别:全 ICE 重连会导致会话中的所有媒体流重新协商。 部分 ICE 重连允许 ICE 重新协商特定媒体流,而不是所有媒体流进行重新协商。 然而,有些浏览器还不支持部分 ICE 重启。 <<<你如何触发每一个?>>>

            +

            ICE 重连有两个级别:全 ICE 重连会导致会话中的所有媒体流重新协商。 部分 ICE 重连允许 ICE 重新协商特定媒体流,而不是所有媒体流进行重新协商。然而,有些浏览器还不支持部分 ICE 重启。 <<<你如何触发每一个?>>>

            如果您需要以某种方式更改连接的配置(例如更改为不同的 ICE 服务器集),您可以调用 RTCPeerConnection.setConfiguration() 设置新的 RTCConfiguration 字典,然后重新启动 ICE。

            -

            要明确触发 ICE 重新启动,只需通过调用 RTCPeerConnection.createOffer() 启动一个协商过程,同时指定 iceRestart 选项为 true。 然后就像平时那样处理连接过程即可。

            +

            要明确触发 ICE 重新启动,只需通过调用 RTCPeerConnection.createOffer() 启动一个协商过程,同时指定 iceRestart 选项为 true。然后就像平时那样处理连接过程即可。

            发送

            diff --git a/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html b/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html index b69e44ff12589a..a811391ab8173a 100644 --- a/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html +++ b/files/zh-cn/web/api/webrtc_api/signaling_and_video_calling/index.html @@ -117,7 +117,7 @@

            交换 ICE 候选

            每个 ICE 消息都建议提供一个通信协议(TCP 或 UDP)、IP 地址、端口号、连接类型(例如,指定的 IP 是对等机本身还是中继服务器),以及将两台计算机连接在一起所需的其他信息。这包括 NAT 或其他网络问题。

            -

            注意: 最需要注意的是:你的代码在 ICE 协商期间唯一需要负责的是从 ICE 层接受外向候选并通过与另一端的信号连接发送他们,当你的  {{domxref("RTCPeerConnection.onicecandidate", "onicecandidate")}} 控制器已经执行后,同时从信令服务器接收 ICE 候选消息 (当接收到 "new-ice-candidate" 消息时) 然后通过调用{{domxref("RTCPeerConnection.addIceCandidate()")}}发送他们到你的 ICE 层。 嗯,就是这样。

            +

            注意: 最需要注意的是:你的代码在 ICE 协商期间唯一需要负责的是从 ICE 层接受外向候选并通过与另一端的信号连接发送他们,当你的  {{domxref("RTCPeerConnection.onicecandidate", "onicecandidate")}} 控制器已经执行后,同时从信令服务器接收 ICE 候选消息 (当接收到 "new-ice-candidate" 消息时) 然后通过调用{{domxref("RTCPeerConnection.addIceCandidate()")}}发送他们到你的 ICE 层。嗯,就是这样。

            SDP 的内容基本上在所有情况下都是与你不相关的。在你真正知道自己在做什么之前,不要试图让事情变得更复杂。否则情况会非常混乱。

            @@ -153,7 +153,7 @@

            ICE 候选交换过程

            如果条件发生变化,例如网络连接恶化,一个或两个对等方可能建议切换到较低带宽的媒体分辨率,或其他编解码器。这将触发新的候选交换,之后可能会发生另一种媒体格式和/或编解码器更改。

            -

            作为可选项, 查看 {{RFC(5245, "Interactive Connectivity Establishment")}}, section 2.6 ("Concluding ICE")如果你想更深入地了解这一过程,就要在 ICE 层内部完成。你应该注意到,候选交换后,一旦 ICE 层满足要求,媒体数据就开始流动。所有这些都是在幕后处理端。我们的任务就是简单地通过信令服务器来回发送候选。

            +

            作为可选项,查看 {{RFC(5245, "Interactive Connectivity Establishment")}}, section 2.6 ("Concluding ICE")如果你想更深入地了解这一过程,就要在 ICE 层内部完成。你应该注意到,候选交换后,一旦 ICE 层满足要求,媒体数据就开始流动。所有这些都是在幕后处理端。我们的任务就是简单地通过信令服务器来回发送候选。

            客户端应用

            diff --git a/files/zh-cn/web/api/webrtc_api/simple_rtcdatachannel_sample/index.html b/files/zh-cn/web/api/webrtc_api/simple_rtcdatachannel_sample/index.html index 4f680b40bcea5a..c5f7c6cb37d524 100644 --- a/files/zh-cn/web/api/webrtc_api/simple_rtcdatachannel_sample/index.html +++ b/files/zh-cn/web/api/webrtc_api/simple_rtcdatachannel_sample/index.html @@ -9,7 +9,7 @@ ---

            {{WebRTCSidebar}}

            -

            {{domxref("RTCDataChannel")}} 接口是WebRTC API的一个功能,可以让您在两个对等体之间打开一个通道,您可以通过该通道发送和接收任意数据。 API 有意地类似于WebSocket API,因此可以为每个 API 使用相同的编程模型。

            +

            {{domxref("RTCDataChannel")}} 接口是WebRTC API的一个功能,可以让您在两个对等体之间打开一个通道,您可以通过该通道发送和接收任意数据。API 有意地类似于WebSocket API,因此可以为每个 API 使用相同的编程模型。

            在本示例中,我们会在一个页面内建立 一条{{domxref("RTCDataChannel")}}链接 . 这个场景是为了演示如何链接两个 Peer,实际场景并不常见。在本示例中解释了协商和建立链接的过程,定位和链接另外一台主机的场景在另外的一个示例中。 

            @@ -85,7 +85,7 @@

            建立本地节点

            sendChannel.onclose = handleSendChannelStatusChange;
      -

      第一步是建立该连接的 "local" 端,它是发起连接请求的一方。 下一步是通过调用{{domxref("RTCPeerConnection.createDataChannel()")}} 来创建 {{domxref("RTCDataChannel")}} 并设置事件侦听以监视该数据通道, 从而获知该通道的打开或关闭 (即获得该对等连接的通道打开或者关闭的时机)。

      +

      第一步是建立该连接的 "local" 端,它是发起连接请求的一方。 下一步是通过调用{{domxref("RTCPeerConnection.createDataChannel()")}} 来创建 {{domxref("RTCDataChannel")}} 并设置事件侦听以监视该数据通道,从而获知该通道的打开或关闭 (即获得该对等连接的通道打开或者关闭的时机)。

      请务必记住该通道的每一端都拥有自己的 {{domxref("RTCDataChannel")}} 对象。

      @@ -94,14 +94,14 @@

      建立远程节点

      remoteConnection = new RTCPeerConnection();
       remoteConnection.ondatachannel = receiveChannelCallback;
      -

      远程端的建立过程类似“local”端, 但它无需自己创建 {{domxref("RTCDataChannel")}} , 因为我们将通过上面建立的渠道进行连接。 我们创建对 {{event("datachannel")}} 的事件处理回调;数据通道打开时该逻辑将被执行, 该回调处理将接收到一个 RTCDataChannel 对象,此过程将在文章后面部分描述。

      +

      远程端的建立过程类似“local”端, 但它无需自己创建 {{domxref("RTCDataChannel")}} ,因为我们将通过上面建立的渠道进行连接。 我们创建对 {{event("datachannel")}} 的事件处理回调;数据通道打开时该逻辑将被执行,该回调处理将接收到一个 RTCDataChannel 对象,此过程将在文章后面部分描述。

      设立 ICE 候选人

      下一步为每个连接建立 ICE 候选侦听处理, 当连接的一方出现新的 ICE 候选时该侦听逻辑将被调用以告知连接的另一方此消息。

      -

      注意: 在现实场景,当参与连接的两节点运行于不同的上下文,建立连接的过程或稍微复杂些,每一次双方通过调用{{domxref("RTCPeerConnection.addIceCandidate()")}},提出连接方式的建议  (例如: UDP,、中继 UDP 、 TCP 之类的) , 双方来回往复直到达成一致。本文既然不涉及现实网络环境,因此我们假定双方接受首次连接建议。 

      +

      注意: 在现实场景,当参与连接的两节点运行于不同的上下文,建立连接的过程或稍微复杂些,每一次双方通过调用{{domxref("RTCPeerConnection.addIceCandidate()")}},提出连接方式的建议  (例如: UDP,、中继 UDP、TCP 之类的) , 双方来回往复直到达成一致。本文既然不涉及现实网络环境,因此我们假定双方接受首次连接建议。 

          localConnection.onicecandidate = e => !e.candidate
      @@ -131,9 +131,9 @@ 

      启动连接尝试

      1. 首先调用{{domxref("RTCPeerConnection.createOffer()")}} 方法创建 {{Glossary("SDP")}} (Session Description Protocol) 字节块用于描述我们期待建立的连接。该方法可选地接受一个描述连接限制的对象,例如连接是否必须支持音频、视频或者两者都支持。在我们的简单示例中,没有引入该限制。
      2. 如果该 offer 成功建立,我们将上述字节块传递给 local 连接的 {{domxref("RTCPeerConnection.setLocalDescription()")}} 方法。 用于配置 local 端的连接。
      3. -
      4. 下一步通过调用remoteConnection.{{domxref("RTCPeerConnection.setRemoteDescription()")}},告知 remote 节点上述描述,将 local 节点连接到到远程 。  现在 remoteConnection 了解正在建立的连接。
      5. +
      6. 下一步通过调用remoteConnection.{{domxref("RTCPeerConnection.setRemoteDescription()")}},告知 remote 节点上述描述,将 local 节点连接到到远程。  现在 remoteConnection 了解正在建立的连接。
      7. 该是 remote 节点回应的时刻了。remote 节点调用 {{domxref("RTCPeerConnection.createAnswer", "createAnswer()")}} 方法予以回应。 该方法生成一个 SDP 二进制块,用于描述 remote 节点愿意并且有能力建立的连接。 这样的连接配置是两端均可以支持可选项的结合。
      8. -
      9. 应答建立之后,通过调用{{domxref("RTCPeerConnection.setLocalDescription()")}}传入 remoteConnection 。该调用完成了 remote 端连接的建立 (对于对端的 remote 节点而言,是它的 local 端。 这种叙述容易使人困惑,但是看多了您就习惯了。
      10. +
      11. 应答建立之后,通过调用{{domxref("RTCPeerConnection.setLocalDescription()")}}传入 remoteConnection。该调用完成了 remote 端连接的建立 (对于对端的 remote 节点而言,是它的 local 端。 这种叙述容易使人困惑,但是看多了您就习惯了。
      12. 最终,通过调用 localConnection 的{{domxref("RTCPeerConnection.setRemoteDescription()")}}方法,本地连接的远端描述被设置为指向 remote 节点。
      13. catch() 调用一个用于处理任何异常的逻辑。
      @@ -144,7 +144,7 @@

      启动连接尝试

      对成功的对等连接的处理

      -

      当 peer-to-peer 连接的任何一方成功连接,相应的 {{domxref("RTCPeerConnection")}}的{{event("icecandidate")}} 事件将被触发。 在事件的处理中可以执行任何需要的操作, 但在本例中,我们所需要做的只是更新用户界面。

      +

      当 peer-to-peer 连接的任何一方成功连接,相应的 {{domxref("RTCPeerConnection")}}的{{event("icecandidate")}} 事件将被触发。 在事件的处理中可以执行任何需要的操作,但在本例中,我们所需要做的只是更新用户界面。

        function handleLocalAddCandidateSuccess() {
           connectButton.disabled = true;
      @@ -167,7 +167,7 @@ 

      数据通道(data channel) receiveChannel.onclose = handleReceiveChannelStatusChange; }

      -

      事件{{event("datachannel")}} 在它的 channel 属性中包括了:  对代表 remote 节点的 channel 的{{domxref("RTCDataChannel")}} 的指向, 它保存了我们用以在该 channel 上对我们希望处理的事件建立的事件监听。 一旦侦听建立, 每当 remote 节点接收到数据 handleReceiveMessage() 方法将被调用, 每当通道的连接状态发生改变 handleReceiveChannelStatusChange() 方法将被调用, 因此通道完全打开或者关闭时我们都可以作出相应的相应。

      +

      事件{{event("datachannel")}} 在它的 channel 属性中包括了:  对代表 remote 节点的 channel 的{{domxref("RTCDataChannel")}} 的指向, 它保存了我们用以在该 channel 上对我们希望处理的事件建立的事件监听。 一旦侦听建立, 每当 remote 节点接收到数据 handleReceiveMessage() 方法将被调用, 每当通道的连接状态发生改变 handleReceiveChannelStatusChange() 方法将被调用,因此通道完全打开或者关闭时我们都可以作出相应的相应。

      对通道状态变化的处理

      @@ -196,7 +196,7 @@

      对通道状态变化的处理

      如果通道状态已经变更为 "open", 意味着我们已经完成了在两对等节点之间建立连接。 相应地用户界面根据状态更新,许用并将输入光标聚焦在 text 输入框,以便用户可以立即输入要发送给对方的文本消息, 同时界面许用 "Send" 和 "Disconnect" 按钮(既然它们已经准备好了),禁用"Connect"按钮,既然在已经建立连接的情况下用不着它。

      -

      当连接状态变更为 "closed"时,界面执行相反的操作: 禁用文本输入框和 "Send" 按钮 , 许用"Connect" 按钮, 以便用户在需要时可以打开新的连接,禁用"Disconnect" 按钮,既然没有连接时用不着它。

      +

      当连接状态变更为 "closed"时,界面执行相反的操作: 禁用文本输入框和 "Send" 按钮 , 许用"Connect" 按钮,以便用户在需要时可以打开新的连接,禁用"Disconnect" 按钮,既然没有连接时用不着它。

      另一方面,作为我们例子的 remote 节点, 则无视这些状态改变事件,仅仅是在控制台输出它们:

      @@ -221,7 +221,7 @@

      发送消息

      messageInputBox.focus(); }
      -

      首先,待发送的消息文本从文本输入框的 {{htmlattrxref("value", "input")}}属性获得,之后该文本通过调用 {{domxref("RTCDataChannel.send", "sendChannel.send()")}}发送到 remote 节点。 都搞定了! 余下的只是些用户体验糖 ——清空并聚焦文本输入框,以便用户可以立即开始下一条消息的输入。

      +

      首先,待发送的消息文本从文本输入框的 {{htmlattrxref("value", "input")}}属性获得,之后该文本通过调用 {{domxref("RTCDataChannel.send", "sendChannel.send()")}}发送到 remote 节点。 都搞定了!余下的只是些用户体验糖 ——清空并聚焦文本输入框,以便用户可以立即开始下一条消息的输入。

      接收消息

      @@ -269,7 +269,7 @@

      断开节点

      }
      -

      该方法首先关闭每个节点的{{domxref("RTCDataChannel")}},之后类似地关闭每个节点的 {{domxref("RTCPeerConnection")}}。将所有对它们的指向置为null 以避免意外的复用。 之后更新界面状态以符合目前已经不存在连接的事实。

      +

      该方法首先关闭每个节点的{{domxref("RTCDataChannel")}},之后类似地关闭每个节点的 {{domxref("RTCPeerConnection")}}。将所有对它们的指向置为null 以避免意外的复用。之后更新界面状态以符合目前已经不存在连接的事实。

      下一步

      diff --git a/files/zh-cn/web/api/webrtc_api/taking_still_photos/index.html b/files/zh-cn/web/api/webrtc_api/taking_still_photos/index.html index 8a6c19b3c6a357..614d38f94834c4 100644 --- a/files/zh-cn/web/api/webrtc_api/taking_still_photos/index.html +++ b/files/zh-cn/web/api/webrtc_api/taking_still_photos/index.html @@ -21,7 +21,7 @@

      HTML 标记

      -

      我们的 HTML 界面有两个主要的操作区域:流和捕获面板以及演示面板。 它们俩都在它们自己的 {{HTMLElement("div")}} 中并排呈现,以便于造型和控制。

      +

      我们的 HTML 界面有两个主要的操作区域:流和捕获面板以及演示面板。它们俩都在它们自己的 {{HTMLElement("div")}} 中并排呈现,以便于造型和控制。

      左边的面板包含两个组件:一个 {{HTMLElement("video")}} 元素,它将接收来自 WebRTC 的流,以及用户点击捕获视频帧的 {{HTMLElement("button")}}。

      @@ -32,7 +32,7 @@

      HTML 标记

      这很简单,当我们进入 JavaScript 代码时,我们将看到他们是如何紧密联系在一起的。

      -

      接下来,我们有一个 {{HTMLElement("canvas")}} 元素,捕获的帧被存储到其中,可能以某种方式进行操作,然后转换为输出图像文件。 通过使用样式 {{cssxref("display")}}:none 将画布保持隐藏,以避免画面的混乱 —— 用户不需要看到这个中间过程。

      +

      接下来,我们有一个 {{HTMLElement("canvas")}} 元素,捕获的帧被存储到其中,可能以某种方式进行操作,然后转换为输出图像文件。通过使用样式 {{cssxref("display")}}:none 将画布保持隐藏,以避免画面的混乱 —— 用户不需要看到这个中间过程。

      我们还有一个 {{HTMLElement("img")}} 元素,我们将涌起绘制图像——这是让用户看到的最终显示。

      @@ -42,11 +42,11 @@

      HTML 标记

          <img id="photo" alt="The screen capture will appear in this box.">   </div>
      -

      这是所有相关的 HTML。 其余的只是一些页面布局和提供一个返回页面链接的些许文本。

      +

      这是所有相关的 HTML。其余的只是一些页面布局和提供一个返回页面链接的些许文本。

      JavaScript 代码

      -

      现在来看看 JavaScript 代码。 我们将把它分解成几个小的部分,使其更容易解释。

      +

      现在来看看 JavaScript 代码。我们将把它分解成几个小的部分,使其更容易解释。

      初始化

      @@ -79,12 +79,12 @@

      初始化

      photo
      这将在页面加载完成后引用 {{HTMLElement("img")}} 元素。
      startbutton
      -
      这将引用用于触发捕获的 {{HTMLElement("button")}} 元素。 我们会在页面加载完成之后得到。
      +
      这将引用用于触发捕获的 {{HTMLElement("button")}} 元素。我们会在页面加载完成之后得到。

      startup( ) 函数

      -

      当页面加载完成时,startup( ) 函数运行,由 window.addEventListener( ) 提供。 此功能的作用是请求访问用户的网络摄像头,将输出<img>初始化为默认状态,并建立从相机接收每帧视频所需的事件侦听器,并在点击按钮捕获图像时作出反应 。

      +

      当页面加载完成时,startup( ) 函数运行,由 window.addEventListener( ) 提供。此功能的作用是请求访问用户的网络摄像头,将输出<img>初始化为默认状态,并建立从相机接收每帧视频所需的事件侦听器,并在点击按钮捕获图像时作出反应。

      获取元素引用

      @@ -110,17 +110,17 @@

      获取流媒体

      }); -

      在这里,我们正在调用 {{domxref("MediaDevices.getUserMedia()")}}  并请求视频流(无音频)。 它返回一个 promise,我们给它附加成功和失败情况下的回调方法。

      +

      在这里,我们正在调用 {{domxref("MediaDevices.getUserMedia()")}}  并请求视频流(无音频)。它返回一个 promise,我们给它附加成功和失败情况下的回调方法。

      成功回调接收一个 stream 对象作为输入。它是新视频的 {{HTMLElement("video")}} 元素的源。

      一旦流被链接到 {{HTMLElement("video")}} 元素,我们通过调用 HTMLMediaElement.play() 开始播放。

      -

      如果打开流失败,则调用失败回调函数。 在没有连接兼容的相机,或者用户拒绝访问时,则会发生这种情况。

      +

      如果打开流失败,则调用失败回调函数。在没有连接兼容的相机,或者用户拒绝访问时,则会发生这种情况。

      监听视频开始播放

      -

      在 {{HTMLElement("video")}} 上调用 HTMLMediaElement.play() 之后,在视频流开始流动之前,有一段(希望简短)的时间段过去了。 为了避免在此之前一直阻塞,我们为 {{HTMLElement("video")}} 加上一个 {{event("canplay")}} 事件的监听器,当视频播放实际开始时会触发该事件。 那时,视频对象中的所有属性都已基于流的格式进行配置。

      +

      在 {{HTMLElement("video")}} 上调用 HTMLMediaElement.play() 之后,在视频流开始流动之前,有一段(希望简短)的时间段过去了。为了避免在此之前一直阻塞,我们为 {{HTMLElement("video")}} 加上一个 {{event("canplay")}} 事件的监听器,当视频播放实际开始时会触发该事件。那时,视频对象中的所有属性都已基于流的格式进行配置。

          video.addEventListener('canplay', function(ev){
             if (!streaming) {
      @@ -138,7 +138,7 @@ 

      监听视频开始播放

      如果这是第一次运行,我们会根据视频的实际大小,video.videoWidth 和要渲染视频宽度的宽度之间的大小差异来设置视频的高度。

      -

      最后,通过在每个元素的两个属性的每一个上调用 Element.setAttribute()来设置视频和画布的宽度和高度,并根据需要设置宽度和高度。 最后,我们将流变量设置为 true,以防止我们再次无意中运行此设置代码。

      +

      最后,通过在每个元素的两个属性的每一个上调用 Element.setAttribute()来设置视频和画布的宽度和高度,并根据需要设置宽度和高度。最后,我们将流变量设置为 true,以防止我们再次无意中运行此设置代码。

      处理按钮上的点击

      @@ -164,7 +164,7 @@

      清除照片框

      -

      清除照片框包括创建一个图像,然后将其转换为可以显示最近捕获的帧的<img>元素使用的格式。 该代码如下所示:

      +

      清除照片框包括创建一个图像,然后将其转换为可以显示最近捕获的帧的<img>元素使用的格式。该代码如下所示:

        function clearphoto() {
           var context = canvas.getContext('2d');
      @@ -175,13 +175,13 @@ 

      清除照片框

      photo.setAttribute('src', data); }
      -

      我们首先得到对我们用于屏幕外渲染的隐藏的<canvas>元素的引用。 接下来,我们将 fillStyle 设置为#AAA(相当浅灰色),并通过调用 fillRect()来填充整个画布。

      +

      我们首先得到对我们用于屏幕外渲染的隐藏的<canvas>元素的引用。接下来,我们将 fillStyle 设置为#AAA(相当浅灰色),并通过调用 fillRect()来填充整个画布。

      最后在此功能中,我们将画布转换为 PNG 图像,并调用 photo.setAttribute()以使我们捕获的静止框显示图像。

      从流中捕获帧

      -

      最后一个定义的功能是整个练习的重点:takepicture()函数,其捕获当前显示的视频帧的作业将其转换为 PNG 文件,并将其显示在捕获的帧框中。 代码如下所示:

      +

      最后一个定义的功能是整个练习的重点:takepicture()函数,其捕获当前显示的视频帧的作业将其转换为 PNG 文件,并将其显示在捕获的帧框中。代码如下所示:

        function takepicture() {
           var context = canvas.getContext('2d');
      @@ -216,7 +216,7 @@ 

      从流中捕获帧

      过滤器的乐趣


      - 由于我们通过从<video>元素中抓取帧来捕获用户网络摄像头的图像,因此我们可以非常轻松地将过滤器和有趣的效果应用于视频。 事实证明,使用过滤器属性应用于元素的任何 CSS 过滤器都会影响捕获的照片。 这些过滤器可以从简单(使图像黑白)到极限(高斯模糊和色调旋转)。

      + 由于我们通过从<video>元素中抓取帧来捕获用户网络摄像头的图像,因此我们可以非常轻松地将过滤器和有趣的效果应用于视频。事实证明,使用过滤器属性应用于元素的任何 CSS 过滤器都会影响捕获的照片。这些过滤器可以从简单(使图像黑白)到极限(高斯模糊和色调旋转)。

      您可以使用例如 Firefox 开发人员工具的风格编辑器来播放此效果; 有关如何执行此操作的详细信息,请参阅编辑 CSS 过滤器。

      diff --git a/files/zh-cn/web/api/websocket/close/index.html b/files/zh-cn/web/api/websocket/close/index.html index 00603501d17236..f60e52579028fb 100644 --- a/files/zh-cn/web/api/websocket/close/index.html +++ b/files/zh-cn/web/api/websocket/close/index.html @@ -5,7 +5,7 @@ ---

      {{APIRef("Web Sockets API")}}

      -

      WebSocket.close() 方法关闭 {{domxref("WebSocket")}}  连接或连接尝试(如果有的话)。 如果连接已经关闭,则此方法不执行任何操作。

      +

      WebSocket.close() 方法关闭 {{domxref("WebSocket")}}  连接或连接尝试(如果有的话)。如果连接已经关闭,则此方法不执行任何操作。

      语法

      diff --git a/files/zh-cn/web/api/websockets_api/writing_a_websocket_server_in_java/index.html b/files/zh-cn/web/api/websockets_api/writing_a_websocket_server_in_java/index.html index c0d740b88709a7..2c3bcc7a94ebc6 100644 --- a/files/zh-cn/web/api/websockets_api/writing_a_websocket_server_in_java/index.html +++ b/files/zh-cn/web/api/websockets_api/writing_a_websocket_server_in_java/index.html @@ -13,7 +13,7 @@

      引言

      第一步

      -

      WebSocket 通过TCP(传输控制协议)通信. Java 的ServerSocket 类位于 java.net 包中。

      +

      WebSocket 通过TCP(传输控制协议)通信。Java 的ServerSocket 类位于 java.net 包中。

      ServerSocket

      @@ -160,7 +160,7 @@

      解码消息

      - 134:

      -

      如果第二个字节减去 128 在 0 到 125 之间,则这是消息的长度。 如果是 126,则后面的 2 个字节(16 位无符号整数),如果是 127,则后面的 8 个字节(64 位无符号整数,最高有效位必须为 0)是长度。

      +

      如果第二个字节减去 128 在 0 到 125 之间,则这是消息的长度。如果是 126,则后面的 2 个字节(16 位无符号整数),如果是 127,则后面的 8 个字节(64 位无符号整数,最高有效位必须为 0)是长度。

      我可以拿 128,因为第一位总是 1。

      diff --git a/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html b/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html index 89cc31a00ea6ba..f45e60f7cde90f 100644 --- a/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html +++ b/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.html @@ -91,7 +91,7 @@

      使用 JSON 发送对象

      // 服务器向所有用户发送文本
       function sendText() {
      -  // 构造一个 msg 对象, 包含了服务器处理所需的数据
      +  // 构造一个 msg 对象,包含了服务器处理所需的数据
         var msg = {
           type: "message",
           text: document.getElementById("text").value,
      diff --git a/files/zh-cn/web/api/websockets_api/writing_websocket_server/index.html b/files/zh-cn/web/api/websockets_api/writing_websocket_server/index.html
      index 81d76f8a28d358..e138f05fafa00f 100644
      --- a/files/zh-cn/web/api/websockets_api/writing_websocket_server/index.html
      +++ b/files/zh-cn/web/api/websockets_api/writing_websocket_server/index.html
      @@ -16,7 +16,7 @@ 

      介绍

      第一步

      -

      WebSockets 通过 TCP (传输控制协议) 连接进行通信.。幸运的是,C# 中有一个 TcpListener 类。 它位于 System.Net.Sockets 的命名空间。

      +

      WebSockets 通过 TCP (传输控制协议) 连接进行通信.。幸运的是,C# 中有一个 TcpListener 类。它位于 System.Net.Sockets 的命名空间。

      最好使用 using 关键字来包含命名空间,这样在你写代码的时候就不需要指定详细的命名空间。

      @@ -39,7 +39,7 @@

      TcpListener

      • Start()
      • System.Net.Sockets.TcpClient AcceptTcpClient()
        - 等一个 Tcp 连接, 并接受一个返回的 TcpClient 对象。
      • + 等一个 Tcp 连接,并接受一个返回的 TcpClient 对象。

      下面是基于服务端的实现:

      diff --git a/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.html b/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.html index aabd3bbafe2525..1d0b6643766f72 100644 --- a/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.html +++ b/files/zh-cn/web/api/websockets_api/writing_websocket_servers/index.html @@ -10,29 +10,29 @@ ---

      WebSocket 服务器是一个TCP 应用程序,监听服务器上任何遵循特定协议的端口,就这么简单。创建自定义服务器的任务往往听起来很吓人,然而,在您选择的平台上实现一个简单的 WebSocket 服务器是很容易的。

      -

      WebSocket 服务器可以用任何实现了Berkeley sockets的服务器端编程语言编写,如 C(++) 或 Python 甚至PHP服务器端 JavaScript。 这不是任何特定语言的教程,而是作为指导,以方便编写自己的服务器。

      +

      WebSocket 服务器可以用任何实现了Berkeley sockets的服务器端编程语言编写,如 C(++) 或 Python 甚至PHP服务器端 JavaScript。这不是任何特定语言的教程,而是作为指导,以方便编写自己的服务器。

      -

      您需要知道 HTTP 的工作原理,并具有中级编程经验。 根据语言帮助(Depending on language support),可能需要 TCP 套接字的知识。 本指南的范围是介绍编写 WebSocket 服务器所需的最低知识。

      +

      您需要知道 HTTP 的工作原理,并具有中级编程经验。根据语言帮助(Depending on language support),可能需要 TCP 套接字的知识。本指南的范围是介绍编写 WebSocket 服务器所需的最低知识。

      阅读最新的官方 WebSockets 规范, RFC 6455. 第 1 节和第 4-7 节对服务器实现者特别有意思。第 10 节讨论安全性,你应该在暴露你的服务器之前仔细阅读它。

      -

      WebSocket 服务器在这里被解释得非常底层。 WebSocket 服务器通常是独立的专用服务器(出于负载平衡或其他实际原因),因此您通常会使用反向代理(例如常规 HTTP 服务器)来检测 WebSocket 握手,预处理这些握手,并将这些客户端发送给 一个真正的 WebSocket 服务器。(例如)这意味着您不必使用 cookie 和身份验证处理程序来扩充服务器代码。

      +

      WebSocket 服务器在这里被解释得非常底层。WebSocket 服务器通常是独立的专用服务器(出于负载平衡或其他实际原因),因此您通常会使用反向代理(例如常规 HTTP 服务器)来检测 WebSocket 握手,预处理这些握手,并将这些客户端发送给 一个真正的 WebSocket 服务器。(例如)这意味着您不必使用 cookie 和身份验证处理程序来扩充服务器代码。

      WebSocket 握手

      -

      首先,服务器必须使用标准的 TCP 套接字来监听传入的套接字连接。 根据您的平台,这可能已经为您处理。 例如,假设您的服务器正在监听 example.com,端口 8000,并且您的套接字服务器响应/chat上的 GET 请求。 .

      +

      首先,服务器必须使用标准的 TCP 套接字来监听传入的套接字连接。根据您的平台,这可能已经为您处理。例如,假设您的服务器正在监听 example.com,端口 8000,并且您的套接字服务器响应/chat上的 GET 请求。 .

      -

      警告:服务器可以监听它选择的任何端口,但是如果它选择了 80 或 443 以外的端口,防火墙和/或代理服务器可能会有问题。 端口 443 上的连接往往会更容易成功,但是当然,这需要一个安全的连接(TLS / SSL)。 另外请注意,大多数浏览器(特别是 Firefox 8+)不允许从安全页面连接到不安全的 WebSocket 服务器。

      +

      警告:服务器可以监听它选择的任何端口,但是如果它选择了 80 或 443 以外的端口,防火墙和/或代理服务器可能会有问题。端口 443 上的连接往往会更容易成功,但是当然,这需要一个安全的连接(TLS / SSL)。另外请注意,大多数浏览器(特别是 Firefox 8+)不允许从安全页面连接到不安全的 WebSocket 服务器。

      -

      握手是 WebSockets 中的“Web”。 这是从 HTTP 到 WS 的桥梁。 在握手过程中,有关连接的详细信息正在初始化中,如果条件不利,任何一方可以在完成之前退出。 服务器必须小心了解客户要求的一切,否则会产生安全问题。

      +

      握手是 WebSockets 中的“Web”。这是从 HTTP 到 WS 的桥梁。在握手过程中,有关连接的详细信息正在初始化中,如果条件不利,任何一方可以在完成之前退出。服务器必须小心了解客户要求的一切,否则会产生安全问题。

      客户端握手请求

      -

      即使您正在构建服务器,客户端仍然必须启动 WebSocket 握手过程。 所以你必须知道如何解释客户的请求。 客户端将发送一个相当标准的 HTTP 请求,看起来像这样(HTTP 版本必须是 1.1 或更高,方法必须是GET):

      +

      即使您正在构建服务器,客户端仍然必须启动 WebSocket 握手过程。所以你必须知道如何解释客户的请求。客户端将发送一个相当标准的 HTTP 请求,看起来像这样(HTTP 版本必须是 1.1 或更高,方法必须是GET):

      GET /chat HTTP/1.1
       Host: example.com:8000
      @@ -43,10 +43,10 @@ 

      客户端握手请求

      客户可以在这里请求扩展和/或子协议;详情请见杂项。当然,你也可以在这里加上你所需要的一般请求头如User-Agent, Referer, Cookie或者认证头。WebSocket 没有作要求,忽略它们也是安全的。在大多数情况下,反向代理已经做了这些处理。

      -

      如果任何请求头信息不被理解或者具有不正确的值,则服务器应该发送“400 Bad Request”并立即关闭套接字。 像往常一样,它也可能会给出 HTTP 响应正文中握手失败的原因,但可能永远不会显示消息(浏览器不显示它)。 如果服务器不理解该版本的 WebSocket,则应该发送一个Sec-WebSocket-Version头,其中包含它理解的版本。(本指南解释了最新的 v13)。 下面我们来看看奇妙的请求头Sec-WebSocket-Key

      +

      如果任何请求头信息不被理解或者具有不正确的值,则服务器应该发送“400 Bad Request”并立即关闭套接字。像往常一样,它也可能会给出 HTTP 响应正文中握手失败的原因,但可能永远不会显示消息(浏览器不显示它)。如果服务器不理解该版本的 WebSocket,则应该发送一个Sec-WebSocket-Version头,其中包含它理解的版本。(本指南解释了最新的 v13)。下面我们来看看奇妙的请求头Sec-WebSocket-Key

      -

      提示: 所有浏览器将会发送一个 Origin请求头。 你可以将这个请求头用于安全方面(检查是否是同一个域,白名单/ 黑名单等),如果你不喜欢这个请求发起源,你可以发送一个403 Forbidden。需要注意的是非浏览器只能发送一个模拟的 Origin。大多数应用会拒绝不含这个请求头的请求.。

      +

      提示: 所有浏览器将会发送一个 Origin请求头。你可以将这个请求头用于安全方面(检查是否是同一个域,白名单/ 黑名单等),如果你不喜欢这个请求发起源,你可以发送一个403 Forbidden。需要注意的是非浏览器只能发送一个模拟的 Origin。大多数应用会拒绝不含这个请求头的请求.。

      @@ -54,7 +54,7 @@

      客户端握手请求

      -

      注意: 常规 HTTP 状态码只能在握手之前使用。 握手成功后,你必须使用一组不同的代码(在规范的第 7.4 节中定义)。

      +

      注意: 常规 HTTP 状态码只能在握手之前使用。握手成功后,你必须使用一组不同的代码(在规范的第 7.4 节中定义)。

      服务器握手响应

      @@ -68,13 +68,13 @@

      服务器握手响应

      -

      另外,服务器可以在这时候决定插件或子协议,详情参见杂项。  Sec-WebSocket-Accept 参数很有趣,它需要服务器通过客户端发送的Sec-WebSocket-Key 计算出来。 怎样计算呢, 把客户发送的 Sec-WebSocket-Key 和 "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" (这个叫做 "魔法值") 连接起来,把结果用SHA-1编码,再用base64编码一次,就可以了。 

      +

      另外,服务器可以在这时候决定插件或子协议,详情参见杂项。  Sec-WebSocket-Accept 参数很有趣,它需要服务器通过客户端发送的Sec-WebSocket-Key 计算出来。怎样计算呢, 把客户发送的 Sec-WebSocket-Key 和 "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" (这个叫做 "魔法值") 连接起来,把结果用SHA-1编码,再用base64编码一次,就可以了。 

      参考:这看起来繁复的处理使得客户端明确服务端是否支持 WebSocket。这是十分重要的,如果服务端接收到一个 WebSocket 连接但是把数据作为 HTTP 请求理解可能会导致安全问题。

      -

      所以如果 Sec-WebSocket-Key 是“dGhlIHNhbXBsZSBub25jZQ==”,Sec-WebSocket-Accept 将是“s3pPLMBiTxaQ9kYGzzhZRbK+xOo=”。 一旦服务器发送这个请求头,握手就完成了,你可以开始交换数据!

      +

      所以如果 Sec-WebSocket-Key 是“dGhlIHNhbXBsZSBub25jZQ==”,Sec-WebSocket-Accept 将是“s3pPLMBiTxaQ9kYGzzhZRbK+xOo=”。一旦服务器发送这个请求头,握手就完成了,你可以开始交换数据!

      服务端可以在发送握手回复前发送其他请求头,诸如 Set-Cookie,请求认证或通过状态码重定向。

      @@ -82,7 +82,7 @@

      服务器握手响应

      跟踪客户端

      -

      这并不直接与 WebSocket 协议相关,但是在这里值得一提的是:你的服务器将不得不跟踪客户的套接字,所以你不会再和已经完成握手的客户握手。 同一个客户端 IP 地址可以尝试连接多次(但是如果客户端尝试过多的连接,服务器可以拒绝它们以免遭拒绝服务攻击)。

      +

      这并不直接与 WebSocket 协议相关,但是在这里值得一提的是:你的服务器将不得不跟踪客户的套接字,所以你不会再和已经完成握手的客户握手。同一个客户端 IP 地址可以尝试连接多次(但是如果客户端尝试过多的连接,服务器可以拒绝它们以免遭拒绝服务攻击)。

      交换数据帧

      @@ -161,9 +161,9 @@

      消息帧

      Pings 和 Pongs:WebSockets 的心跳

      -

      在经过握手之后的任意时刻里,无论客户端还是服务端都可以选择发送一个 ping 给另一方。 当 ping 消息收到的时候,接受的一方必须尽快回复一个 pong 消息。 例如,可以使用这种方式来确保客户端还是连接状态。

      +

      在经过握手之后的任意时刻里,无论客户端还是服务端都可以选择发送一个 ping 给另一方。当 ping 消息收到的时候,接受的一方必须尽快回复一个 pong 消息。例如,可以使用这种方式来确保客户端还是连接状态。

      -

      一个 ping 或者 pong 都只是一个常规的帧, 只是这个帧是一个控制帧。Ping 消息的 opcode 字段值为 0x9,pong 消息的 opcode 值为  0xA 。当你获取到一个 ping 消息的时候,回复一个跟 ping 消息有相同载荷数据的 pong 消息 (对于 ping 和 pong,最大载荷长度位 125)。 你也有可能在没有发送 ping 消息的情况下,获取一个 pong 消息,当这种情况发生的时候忽略它。

      +

      一个 ping 或者 pong 都只是一个常规的帧,只是这个帧是一个控制帧。Ping 消息的 opcode 字段值为 0x9,pong 消息的 opcode 值为  0xA 。当你获取到一个 ping 消息的时候,回复一个跟 ping 消息有相同载荷数据的 pong 消息 (对于 ping 和 pong,最大载荷长度位 125)。你也有可能在没有发送 ping 消息的情况下,获取一个 pong 消息,当这种情况发生的时候忽略它。

      如果在你有机会发送一个 pong 消息之前,你已经获取了超过一个的 ping 消息,那么你只发送一个 pong 消息。

      diff --git a/files/zh-cn/web/api/webvr_api/index.html b/files/zh-cn/web/api/webvr_api/index.html index 866292502fbc94..f9061a39332df7 100644 --- a/files/zh-cn/web/api/webvr_api/index.html +++ b/files/zh-cn/web/api/webvr_api/index.html @@ -28,7 +28,7 @@

      概念及使用方法

      The {{domxref("HMDVRDevice.getEyeParameters()")}} method returns a {{domxref("VREyeParameters")}} object, which can be used to return field of view information — how much of the scene the head mounted display can see. The {{domxref("VREyeParameters.currentFieldOfView")}} returns a {{domxref("VRFieldOfView")}} object that contains 4 angles describing the current view from a center point. You can also change the field of view using {{domxref("HMDVRDevice.setFieldOfView()")}}.

      -

      {{domxref("HMDVRDevice.getEyeParameters()")}} 方法返回一个 {{domxref("VREyeParameters")}} 对象,可用于获取显示区域的信息 — 头显可以看到多少画面。 {{domxref("VREyeParameters.currentFieldOfView")}} 返回一个 {{domxref("VRFieldOfView")}} 对象 ,该对象包含了 4 个角度信息来描述当前的显示区域。你可以用 {{domxref("HMDVRDevice.setFieldOfView()")}} 来改变当前的显示区域。

      +

      {{domxref("HMDVRDevice.getEyeParameters()")}} 方法返回一个 {{domxref("VREyeParameters")}} 对象,可用于获取显示区域的信息 — 头显可以看到多少画面。 {{domxref("VREyeParameters.currentFieldOfView")}} 返回一个 {{domxref("VRFieldOfView")}} 对象,该对象包含了 4 个角度信息来描述当前的显示区域。你可以用 {{domxref("HMDVRDevice.setFieldOfView()")}} 来改变当前的显示区域。

       

      diff --git a/files/zh-cn/web/api/webvr_api/using_the_webvr_api/index.html b/files/zh-cn/web/api/webvr_api/using_the_webvr_api/index.html index 2091a8c79f7e2e..e9420da136f664 100644 --- a/files/zh-cn/web/api/webvr_api/using_the_webvr_api/index.html +++ b/files/zh-cn/web/api/webvr_api/using_the_webvr_api/index.html @@ -21,13 +21,13 @@

      起步

      To get started, you need to have your VR hardware set up as recommended in the owner's manual, and your computer set up as indicated in WebVR environment setup. A dedicated GPU is recommended for smoother performance.
      - 你需要先准备好一个已经配置好 VR 硬件,并且还需要完成 WebVR 环境的安装。 当然,若想要保证很平滑的体验,你需要配置一个足够好的 GPU 显卡。

      + 你需要先准备好一个已经配置好 VR 硬件,并且还需要完成 WebVR 环境的安装。当然,若想要保证很平滑的体验,你需要配置一个足够好的 GPU 显卡。

      You also need to have Firefox Nightly (or Developer Edition) installed, along with the WebVR Enabler Add-on
      安装好 Firefox Nightly (或 Developer Edition),以及 WebVR Enabler Add-on

      Once your environment is set up, try visiting one of our MozVR projects and clicking on the "Enter VR" button to test it out.
      - 设置好环境后,请尝试访问我们直接可在线运行的工程项目 MozVR projects ,点击“Enter VR” 按钮,就可以开始测试你的环境了。

      + 设置好环境后,请尝试访问我们直接可在线运行的工程项目 MozVR projects ,点击“Enter VR”按钮,就可以开始测试你的环境了。

      Note: For more in depth information, be sure to check out WebVR environment setup.
      diff --git a/files/zh-cn/web/api/webvtt_api/index.html b/files/zh-cn/web/api/webvtt_api/index.html index d500c93ed3952f..aa5c136f66042e 100644 --- a/files/zh-cn/web/api/webvtt_api/index.html +++ b/files/zh-cn/web/api/webvtt_api/index.html @@ -15,7 +15,7 @@ ---

      {{DefaultAPISidebar("WebVTT")}}
      -

      Web 视频文本跟踪格式 (WebVTT) 是一种使用{{HTMLElement("track")}}元素显示定时文本轨道(如字幕或标题)的格式。 WebVTT 文件的主要用途是将文本叠加添加到{{HTMLElement("video")}}。 WebVTT 是一种基于文本的格式,必须使用{{Glossary("UTF-8")}}进行编码。 在可以使用空格的地方,您也可以使用制表符。 还有一个小的 API 可用于表示和管理这些轨道以及在正确的时间执行文本回放所需的数据。

      +

      Web 视频文本跟踪格式 (WebVTT) 是一种使用{{HTMLElement("track")}}元素显示定时文本轨道(如字幕或标题)的格式。WebVTT 文件的主要用途是将文本叠加添加到{{HTMLElement("video")}}。WebVTT 是一种基于文本的格式,必须使用{{Glossary("UTF-8")}}进行编码。在可以使用空格的地方,您也可以使用制表符。还有一个小的 API 可用于表示和管理这些轨道以及在正确的时间执行文本回放所需的数据。

      WebVTT 文件

      diff --git a/files/zh-cn/web/api/webxr_device_api/index.html b/files/zh-cn/web/api/webxr_device_api/index.html index ef72e9c4f0a08c..013e607b7c32e7 100644 --- a/files/zh-cn/web/api/webxr_device_api/index.html +++ b/files/zh-cn/web/api/webxr_device_api/index.html @@ -20,7 +20,7 @@

      由于 WebGL 用于将 3D 世界渲染到 WebXR 会话中,因此您首先应该熟悉 WebGL 的一般用法以及 3D 图形的基本知识。您很可能不会直接使用 WebGL API,而是利用在 WebGL 之上构建的框架或库之一来使其使用更加方便。其中最流行的是three.js

      -

      使用库而不是直接使用 WebGL API 的一个特殊好处是,库取向于实现虚拟相机函数性的接口。OpenGL( WebGL 的扩展)不直接提供照相机视图,使用库模拟一个的话可以使您的工作变得非常非常容易,特别是在构建允许在虚拟世界中自由移动的代码时。

      +

      使用库而不是直接使用 WebGL API 的一个特殊好处是,库取向于实现虚拟相机函数性的接口。OpenGL(WebGL 的扩展)不直接提供照相机视图,使用库模拟一个的话可以使您的工作变得非常非常容易,特别是在构建允许在虚拟世界中自由移动的代码时。

      重要的健康和安全提示

      diff --git a/files/zh-cn/web/api/window/back/index.html b/files/zh-cn/web/api/window/back/index.html index e3ad8680d1aecf..e0f700cf5841f0 100644 --- a/files/zh-cn/web/api/window/back/index.html +++ b/files/zh-cn/web/api/window/back/index.html @@ -11,7 +11,7 @@

      总结

      -

      跳转窗口到 history 中的前一个地址, 这曾是 Gecko 的方法。请使用标准的 history.back 替代它。

      +

      跳转窗口到 history 中的前一个地址,这曾是 Gecko 的方法。请使用标准的 history.back 替代它。

      Syntax

      diff --git a/files/zh-cn/web/api/window/blur_event/index.html b/files/zh-cn/web/api/window/blur_event/index.html index 33da786cec5875..975dae88b28ac5 100644 --- a/files/zh-cn/web/api/window/blur_event/index.html +++ b/files/zh-cn/web/api/window/blur_event/index.html @@ -111,6 +111,6 @@

      浏览器兼容性

      参见

        -
      • 相关联事件: {{domxref("Window/focus_event", "focus")}}
      • +
      • 相关联事件:{{domxref("Window/focus_event", "focus")}}
      • Element 目标上的这个事件:{{domxref("Element/blur_event", "blur")}} 事件
      diff --git a/files/zh-cn/web/api/window/closed/index.html b/files/zh-cn/web/api/window/closed/index.html index de1bf7bd95f206..b9552e5a44367f 100644 --- a/files/zh-cn/web/api/window/closed/index.html +++ b/files/zh-cn/web/api/window/closed/index.html @@ -16,7 +16,7 @@

      语法

      isClosed
      -
      一个布尔值。 可能的值: +
      一个布尔值。可能的值:
      • true: 窗口已被关闭。
      • false: 窗口是打开的。
      • diff --git a/files/zh-cn/web/api/window/copy_event/index.html b/files/zh-cn/web/api/window/copy_event/index.html index a17a85f30e214f..d973286796c2c1 100644 --- a/files/zh-cn/web/api/window/copy_event/index.html +++ b/files/zh-cn/web/api/window/copy_event/index.html @@ -32,7 +32,7 @@
      -

      此事件的原始目标是 {{domxref("Element")}} 它是复制操作的预期目标。您可以在 {{domxref("Window")}} 界面上监听此事件,以在捕获或冒泡阶段对其进行处理。 有关此事件的完整详细信息,请参见 Element: copy event.

      +

      此事件的原始目标是 {{domxref("Element")}} 它是复制操作的预期目标。您可以在 {{domxref("Window")}} 界面上监听此事件,以在捕获或冒泡阶段对其进行处理。有关此事件的完整详细信息,请参见 Element: copy event.

      示例

      diff --git a/files/zh-cn/web/api/window/devicepixelratio/index.html b/files/zh-cn/web/api/window/devicepixelratio/index.html index 7697a2d2a20950..f6099e90b949c8 100644 --- a/files/zh-cn/web/api/window/devicepixelratio/index.html +++ b/files/zh-cn/web/api/window/devicepixelratio/index.html @@ -5,11 +5,11 @@ ---

      {{APIRef}}

      -

      {{domxref("Window")}} 接口的devicePixelRatio返回当前显示设备的物理像素分辨率与CSS 像素分辨率之比。 此值也可以解释为像素大小的比率:一个 CSS 像素的大小与一个物理像素的大小。 简单来说,它告诉浏览器应使用多少屏幕实际像素来绘制单个 CSS 像素。

      +

      {{domxref("Window")}} 接口的devicePixelRatio返回当前显示设备的物理像素分辨率与CSS 像素分辨率之比。此值也可以解释为像素大小的比率:一个 CSS 像素的大小与一个物理像素的大小。简单来说,它告诉浏览器应使用多少屏幕实际像素来绘制单个 CSS 像素。

      当处理标准显示器与 HiDPI 或 Retina 显示器之间的差异时,这很有用,后者使用更多的屏幕像素绘制相同的对象,从而获得更清晰的图像。

      -

      您可以使用{{domxref("Window.matchMedia", "window.matchMedia()")}} 检查devicePixelRatio的值是否发生更改(例如,如果用户将窗口拖动到带有 不同的像素密度)。 请参阅下面的例子

      +

      您可以使用{{domxref("Window.matchMedia", "window.matchMedia()")}} 检查devicePixelRatio的值是否发生更改(例如,如果用户将窗口拖动到带有 不同的像素密度)。请参阅下面的例子

      语法

      @@ -18,13 +18,13 @@

      语法

      值 Value

      -

      一个双精度浮点值,指示显示器的物理像素分辨率与 CSS 像素分辨率之比。 值 1 表示经典 96 DPI(在某些平台上为 76 DPI)显示,而对于 HiDPI / Retina 显示屏则期望值为 2。 在异常低分辨率的显示器中,或更常见的是,当屏幕的像素深度比简单地将 96 或 76 DPI 的标准分辨率提高一倍时,可能还会返回其他值。

      +

      一个双精度浮点值,指示显示器的物理像素分辨率与 CSS 像素分辨率之比。值 1 表示经典 96 DPI(在某些平台上为 76 DPI)显示,而对于 HiDPI / Retina 显示屏则期望值为 2。在异常低分辨率的显示器中,或更常见的是,当屏幕的像素深度比简单地将 96 或 76 DPI 的标准分辨率提高一倍时,可能还会返回其他值。

      例子

      在 <canvas> 中更正分辨率

      -

      {{htmlelement("canvas")}}可能在视网膜屏幕上显得太模糊。 使用window.devicePixelRatio确定应添加多少额外的像素密度以使图像更清晰。

      +

      {{htmlelement("canvas")}}可能在视网膜屏幕上显得太模糊。使用window.devicePixelRatio确定应添加多少额外的像素密度以使图像更清晰。

      HTML

      @@ -85,7 +85,7 @@

      JavaScript

      matchMedia(mqString).addListener(updatePixelRatio);
    -

    字符串mqString设置为媒体查询本身。 媒体查询以(resolution: 1dppx)(对于标准显示)或(resolution: 2dppx)(对于 Retina / HiDPI 显示)开始,检查当前显示分辨率是否与每个像素px的实际设备像素点匹配。

    +

    字符串mqString设置为媒体查询本身。媒体查询以(resolution: 1dppx)(对于标准显示)或(resolution: 2dppx)(对于 Retina / HiDPI 显示)开始,检查当前显示分辨率是否与每个像素px的实际设备像素点匹配。

    updatePixelRatio()函数获取devicePixelRatio的当前值,然后将pixelRatioBox的 {{domxref("HTMLElement.innerText", "innerText")}}设置为一个字符串,该字符串同时显示百分比和原始十进制值比率,最多两位小数。

    diff --git a/files/zh-cn/web/api/window/dialogarguments/index.html b/files/zh-cn/web/api/window/dialogarguments/index.html index 79e6f865b16798..95746cbba19e75 100644 --- a/files/zh-cn/web/api/window/dialogarguments/index.html +++ b/files/zh-cn/web/api/window/dialogarguments/index.html @@ -18,7 +18,7 @@

    摘要

    -

    dialogArguments 属性返回{{domxref("window.showModalDialog()")}} 方法传递的参数。 这可以让你确定在创建模态对话框时指定了哪些参数。

    +

    dialogArguments 属性返回{{domxref("window.showModalDialog()")}} 方法传递的参数。这可以让你确定在创建模态对话框时指定了哪些参数。

    语法

    diff --git a/files/zh-cn/web/api/window/document/index.html b/files/zh-cn/web/api/window/document/index.html index 1c073e6cdd2ce8..421e78bda3f2da 100644 --- a/files/zh-cn/web/api/window/document/index.html +++ b/files/zh-cn/web/api/window/document/index.html @@ -31,7 +31,7 @@

    例子

    <script type="text/javascript"> var doc = window.document; - alert( doc.title); // 弹出: Hello, World! + alert( doc.title); // 弹出:Hello, World! </script> </body> diff --git a/files/zh-cn/web/api/window/focus_event/index.html b/files/zh-cn/web/api/window/focus_event/index.html index 839557cfef61f6..a8aa04a112c968 100644 --- a/files/zh-cn/web/api/window/focus_event/index.html +++ b/files/zh-cn/web/api/window/focus_event/index.html @@ -114,5 +114,5 @@

    参考

    • 相关联事件: {{domxref("Window/blur_event", "blur")}}
    • -
    • Element 目标上的这个事件: {{domxref("Element/focus_event", "focus")}} 事件
    • +
    • Element 目标上的这个事件:{{domxref("Element/focus_event", "focus")}} 事件
    diff --git a/files/zh-cn/web/api/window/fullscreen/index.html b/files/zh-cn/web/api/window/fullscreen/index.html index 6a02fdacc54c64..ee78c30acb4fca 100644 --- a/files/zh-cn/web/api/window/fullscreen/index.html +++ b/files/zh-cn/web/api/window/fullscreen/index.html @@ -38,7 +38,7 @@

    示例

    规范

    -

    DOM 0 级。 window.fullScreen 并不属于任何 W3C 规范或技术推荐中。

    +

    DOM 0 级。window.fullScreen 并不属于任何 W3C 规范或技术推荐中。

    备注

    diff --git a/files/zh-cn/web/api/window/getcomputedstyle/index.html b/files/zh-cn/web/api/window/getcomputedstyle/index.html index b05f3bcc1c987b..46468b0fcbdef7 100644 --- a/files/zh-cn/web/api/window/getcomputedstyle/index.html +++ b/files/zh-cn/web/api/window/getcomputedstyle/index.html @@ -11,7 +11,7 @@

    摘要

    -

    Window.getComputedStyle()方法返回一个对象,该对象在应用活动样式表并解析这些值可能包含的任何基本计算后报告元素的所有 CSS 属性的值。 私有的 CSS 属性值可以通过对象提供的 API 或通过简单地使用 CSS 属性名称进行索引来访问。

    +

    Window.getComputedStyle()方法返回一个对象,该对象在应用活动样式表并解析这些值可能包含的任何基本计算后报告元素的所有 CSS 属性的值。私有的 CSS 属性值可以通过对象提供的 API 或通过简单地使用 CSS 属性名称进行索引来访问。

    语法

    @@ -82,11 +82,11 @@

    描述

    返回的对象与从元素的 {{domxref("HTMLElement.style", "style")}}  属性返回的对象具有相同的类型;然而,两个对象具有不同的目的。从getComputedStyle返回的对象是只读的,可以用于检查元素的样式(包括由一个<style>元素或一个外部样式表设置的那些样式)。elt.style对象应用于在特定元素上设置样式。

    -

    第一个参数必须是 Element 对象 (传递一个非节点元素,如 一个#text 节点, 将会抛出一个错误). 从 Gecko 1.9.2   {{geckoRelease("1.9.2")}} 开始,现在返回的一个在 URL 周围有引号的 URL 值,像这样: url("http://foo.com/bar.jpg").

    +

    第一个参数必须是 Element 对象 (传递一个非节点元素,如 一个#text 节点,将会抛出一个错误). 从 Gecko 1.9.2   {{geckoRelease("1.9.2")}} 开始,现在返回的一个在 URL 周围有引号的 URL 值,像这样: url("http://foo.com/bar.jpg").

    defaultView

    -

    在许多在线的演示代码中,getComputedStyle是通过 document.defaultView 对象来调用的。大部分情况下,这是不需要的,因为可以直接通过window对象调用。但有一种情况,你必需要使用 defaultView,  那是在 firefox3.6 上访问子框架内的样式 。

    +

    在许多在线的演示代码中,getComputedStyle是通过 document.defaultView 对象来调用的。大部分情况下,这是不需要的,因为可以直接通过window对象调用。但有一种情况,你必需要使用 defaultView,  那是在 firefox3.6 上访问子框架内的样式。

    与伪元素一起使用

    @@ -114,7 +114,7 @@

    注意

     

    -

    返回的{{domxref("CSSStyleDeclaration")}}对象将包含所有受支持的 CSS 属性长名称的活动值。示例名称是border-bottom-widthborder-widthborder是示例速记属性名称。仅使用像font-size这样的名字来查询值是最安全的。 查询诸如font等简写名称不适用于大多数浏览器。

    +

    返回的{{domxref("CSSStyleDeclaration")}}对象将包含所有受支持的 CSS 属性长名称的活动值。示例名称是border-bottom-widthborder-widthborder是示例速记属性名称。仅使用像font-size这样的名字来查询值是最安全的。查询诸如font等简写名称不适用于大多数浏览器。

    CSS 规范也允许使用驼峰命名,比如fontSizepaddingTop

    @@ -122,9 +122,9 @@

    注意

     

    -

    getComputedStyle的返回值是 {{cssxref("resolved_value", "resolved values")}},  通常跟 CSS2.1 中的{{cssxref("computed_value","computed values")}}是相同的值。 但对于一些旧的属性,比如width, height, padding 它们的值又为 {{cssxref("used_value","used values")}}。 最初,CSS2.0 定义的计算值 Computed values 就是属性的最终值。 但是 CSS2.1 重新定义了 computed values 为布局前的值, used values 布局后的值。 布局前与布局后的区别是, width 或者 height 的 百分比可以代表元素的宽度,在布局后会被像素值替换。

    +

    getComputedStyle的返回值是 {{cssxref("resolved_value", "resolved values")}},  通常跟 CSS2.1 中的{{cssxref("computed_value","computed values")}}是相同的值。但对于一些旧的属性,比如width, height, padding 它们的值又为 {{cssxref("used_value","used values")}}。最初,CSS2.0 定义的计算值 Computed values 就是属性的最终值。但是 CSS2.1 重新定义了 computed values 为布局前的值,used values 布局后的值。布局前与布局后的区别是,width 或者 height 的 百分比可以代表元素的宽度,在布局后会被像素值替换。

    -

    在某些情况下,通过浏览器会特意返回不准确的值。 特别是在避免 CSS 浏览历史泄露的安全问题, 比如,浏览者看过某个网站, 它的链接通常会变成蓝色带下划线的链接,通过判断链接的颜色(getComputedSytle(node, null).color) 是否为蓝色,就会泄露用户的浏览历史, 所以浏览器会特意返回不准确的值,保护用户隐私。可以了解更多关于 css 安全的链接http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/

    +

    在某些情况下,通过浏览器会特意返回不准确的值。特别是在避免 CSS 浏览历史泄露的安全问题,比如,浏览者看过某个网站,它的链接通常会变成蓝色带下划线的链接,通过判断链接的颜色(getComputedSytle(node, null).color) 是否为蓝色,就会泄露用户的浏览历史,所以浏览器会特意返回不准确的值,保护用户隐私。可以了解更多关于 css 安全的链接http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/

    在 CSS 过渡期间,getComputedStyle返回 Firefox 中的原始属性值,但返回 WebKit 中的最终属性值。

    diff --git a/files/zh-cn/web/api/window/getselection/index.html b/files/zh-cn/web/api/window/getselection/index.html index 7e551018633053..7d09c6f8efed8b 100644 --- a/files/zh-cn/web/api/window/getselection/index.html +++ b/files/zh-cn/web/api/window/getselection/index.html @@ -14,7 +14,7 @@

    语法

    const selection = window.getSelection() ;
      -
    • selection 是一个 {{domxref("Selection")}} 对象。 如果想要将 selection 转换为字符串,可通过连接一个空字符串("")或使用 {{jsxref("String.toString()")}} 方法。
    • +
    • selection 是一个 {{domxref("Selection")}} 对象。如果想要将 selection 转换为字符串,可通过连接一个空字符串("")或使用 {{jsxref("String.toString()")}} 方法。

    示例

    diff --git a/files/zh-cn/web/api/window/load_event/index.html b/files/zh-cn/web/api/window/load_event/index.html index c57d082100ad26..b13dd7d0321cda 100644 --- a/files/zh-cn/web/api/window/load_event/index.html +++ b/files/zh-cn/web/api/window/load_event/index.html @@ -142,7 +142,7 @@

    规范

  • {{SpecName('HTML WHATWG', '#delay-the-load-event', 'load event')}} {{Spec2('HTML WHATWG')}}此链接指向加载文档结束时执行步骤中的部分。“load”事件也会在许多元素上触发。 请注意,规范中有很多地方涉及到可以"延迟加载事件"的内容。此链接指向加载文档结束时执行步骤中的部分。“load”事件也会在许多元素上触发。请注意,规范中有很多地方涉及到可以"延迟加载事件"的内容。
    @@ -154,5 +154,5 @@

    浏览器兼容性

    参阅

      -
    • 相关事件: {{domxref("Window/DOMContentLoaded_event", "DOMContentLoaded")}}, {{domxref("Document/readystatechange_event", "readystatechange")}}, {{domxref("Window/beforeunload_event", "beforeunload")}}, {{domxref("Window/unload_event", "unload")}}
    • +
    • 相关事件:{{domxref("Window/DOMContentLoaded_event", "DOMContentLoaded")}}, {{domxref("Document/readystatechange_event", "readystatechange")}}, {{domxref("Window/beforeunload_event", "beforeunload")}}, {{domxref("Window/unload_event", "unload")}}
    diff --git a/files/zh-cn/web/api/window/localstorage/index.html b/files/zh-cn/web/api/window/localstorage/index.html index 9517f31fdc97c9..e584ad1a229700 100644 --- a/files/zh-cn/web/api/window/localstorage/index.html +++ b/files/zh-cn/web/api/window/localstorage/index.html @@ -23,13 +23,13 @@

    语法

    -

    一个可被用于访问当前源( origin )的本地存储空间的 {{domxref("Storage")}} 对象。

    +

    一个可被用于访问当前源(origin)的本地存储空间的 {{domxref("Storage")}} 对象。

    异常

    SecurityError
    -
    请求违反了一个策略声明,或者源( origin )不是 一个有效的 scheme/host/port tuple (例如如果 origin 使用 file: 或者 data: 形式将可能发生)。比如,用户可以有禁用允许对指定的 origin 存留数据的浏览器配置。
    +
    请求违反了一个策略声明,或者源(origin)不是 一个有效的 scheme/host/port tuple (例如如果 origin 使用 file: 或者 data: 形式将可能发生)。比如,用户可以有禁用允许对指定的 origin 存留数据的浏览器配置。

    示例

    diff --git a/files/zh-cn/web/api/window/location/index.html b/files/zh-cn/web/api/window/location/index.html index c2537b48b1074f..820f455fc3837e 100644 --- a/files/zh-cn/web/api/window/location/index.html +++ b/files/zh-cn/web/api/window/location/index.html @@ -18,7 +18,7 @@

    window.location : 所有字母必须小写!

    -

    尽管 window.location 是一个只读 Location 对象,你仍然可以赋给它一个 {{domxref("DOMString")}}。这意味着您可以在大多数情况下处理 location,就像它是一个字符串一样:window.location = 'http://www.example.com',是 window.location.href = 'http://www.example.com'的同义词 。

    +

    尽管 window.location 是一个只读 Location 对象,你仍然可以赋给它一个 {{domxref("DOMString")}}。这意味着您可以在大多数情况下处理 location,就像它是一个字符串一样:window.location = 'http://www.example.com',是 window.location.href = 'http://www.example.com'的同义词。

    语法

    diff --git a/files/zh-cn/web/api/window/mozinnerscreenx/index.html b/files/zh-cn/web/api/window/mozinnerscreenx/index.html index 8090bd4c348cb0..731c74e554e968 100644 --- a/files/zh-cn/web/api/window/mozinnerscreenx/index.html +++ b/files/zh-cn/web/api/window/mozinnerscreenx/index.html @@ -19,7 +19,7 @@

    概要

    在屏幕坐标中获取窗口视口左上角的 X 坐标

    -
    备注: 该坐标以 CSS 像素报告显示,而不是硬件像素。 这意味着它可以受缩放级别的影响; 要计算物理屏幕像素的实际数量,需要使用 nsIDOMWindowUtils.screenPixelsPerCSSPixel 属性。
    +
    备注: 该坐标以 CSS 像素报告显示,而不是硬件像素。这意味着它可以受缩放级别的影响; 要计算物理屏幕像素的实际数量,需要使用 nsIDOMWindowUtils.screenPixelsPerCSSPixel 属性。

    语法

    diff --git a/files/zh-cn/web/api/window/navigator/index.html b/files/zh-cn/web/api/window/navigator/index.html index 0eaf8c6e51df51..041883c1d58919 100644 --- a/files/zh-cn/web/api/window/navigator/index.html +++ b/files/zh-cn/web/api/window/navigator/index.html @@ -46,7 +46,7 @@

    例子 #1 sBrowser = "unknown"; } -alert("当前浏览器为: " + sBrowser); +alert("当前浏览器为:" + sBrowser);

    例子 #2:检测浏览器并返回代表当前浏览器的索引数字

    diff --git a/files/zh-cn/web/api/window/ondragdrop/index.html b/files/zh-cn/web/api/window/ondragdrop/index.html index a13657edf2f279..645ff373fcb8a0 100644 --- a/files/zh-cn/web/api/window/ondragdrop/index.html +++ b/files/zh-cn/web/api/window/ondragdrop/index.html @@ -4,7 +4,7 @@ translation_of: Web/API/Window/ondragdrop ---
    -

    在 Firefox 50 中已删除,并且从未在任何其他浏览器中实行。 请改用现代标准的HTML5 拖放功能。

    +

    在 Firefox 50 中已删除,并且从未在任何其他浏览器中实行。请改用现代标准的HTML5 拖放功能。

    摘要

    @@ -22,13 +22,13 @@

    摘要

    要注册的事件处理函数。
    -

    Gecko({{ Bug(112288) }}) 中未实现window.ondragdrop属性和ondragdrop属性,您必须使用addEventListener。 有关详细信息,请参见addEventListener

    +

    Gecko({{ Bug(112288) }}) 中未实现window.ondragdrop属性和ondragdrop属性,您必须使用addEventListener。有关详细信息,请参见addEventListener

    示例

    在拖放时触发 alert

    -

    在此示例中,事件侦听器被添加到窗口(事件目标)。 如果从外部源将选项卡,链接,标记的文本或文件拖放到此窗口上,则会触发警报。 注意event.stopPropagation(); 阻止浏览器加载放置的标签,链接或文件。

    +

    在此示例中,事件侦听器被添加到窗口(事件目标)。如果从外部源将选项卡,链接,标记的文本或文件拖放到此窗口上,则会触发警报。注意event.stopPropagation(); 阻止浏览器加载放置的标签,链接或文件。

    <html>
     <head><title>dragdroptest</title>
    diff --git a/files/zh-cn/web/api/window/open/index.html b/files/zh-cn/web/api/window/open/index.html
    index 84d29f0a47543d..8037e2ab218fcf 100644
    --- a/files/zh-cn/web/api/window/open/index.html
    +++ b/files/zh-cn/web/api/window/open/index.html
    @@ -48,7 +48,7 @@ 

    位置和尺寸特征。 +
    可选参数。是一个字符串值,这个值列出了将要打开的窗口的一些特性 (窗口功能和工具栏) 。字符串中不能包含任何空白字符,特性之间用逗号分隔开。参考下文的位置和尺寸特征

    说明

    diff --git a/files/zh-cn/web/api/window/postmessage/index.html b/files/zh-cn/web/api/window/postmessage/index.html index 50ead56cdaef42..fb1bd43d155e53 100644 --- a/files/zh-cn/web/api/window/postmessage/index.html +++ b/files/zh-cn/web/api/window/postmessage/index.html @@ -16,7 +16,7 @@

    window.postMessage() 方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为 https),端口号(443 为 https 的默认值),以及主机  (两个页面的模数 {{domxref("Document.domain")}}设置为相同的值) 时,这两个脚本才能相互通信。window.postMessage() 方法提供了一种受控机制来规避此限制,只要正确的使用,这种方法就很安全。

    -

    从广义上讲,一个窗口可以获得对另一个窗口的引用(比如 targetWindow = window.opener),然后在窗口上调用 targetWindow.postMessage() 方法分发一个  {{domxref("MessageEvent")}} 消息。接收消息的窗口可以根据需要自由处理此事件。传递给 window.postMessage() 的参数(比如 message )将通过消息事件对象暴露给接收消息的窗口

    +

    从广义上讲,一个窗口可以获得对另一个窗口的引用(比如 targetWindow = window.opener),然后在窗口上调用 targetWindow.postMessage() 方法分发一个  {{domxref("MessageEvent")}} 消息。接收消息的窗口可以根据需要自由处理此事件。传递给 window.postMessage() 的参数(比如 message)将通过消息事件对象暴露给接收消息的窗口

    语法

    @@ -59,7 +59,7 @@

    The dispatched eventdata
    从其他 window 中传递过来的对象。
    origin
    -
    调用 postMessage  时消息发送方窗口的 origin . 这个字符串由 协议、“://“、域名、“ : 端口号”拼接而成。例如 “https://example.org (隐含端口 443)”、“http://example.net (隐含端口 80)”、“http://example.com:8080”。请注意,这个 origin 不能保证是该窗口的当前或未来 origin,因为 postMessage 被调用后可能被导航到不同的位置。
    +
    调用 postMessage  时消息发送方窗口的 origin . 这个字符串由 协议、“://“、域名、“ : 端口号”拼接而成。例如“https://example.org (隐含端口 443)”、“http://example.net (隐含端口 80)”、“http://example.com:8080”。请注意,这个 origin 不能保证是该窗口的当前或未来 origin,因为 postMessage 被调用后可能被导航到不同的位置。
    source
    对发送消息的窗口对象的引用; 您可以使用此来在具有不同 origin 的两个窗口之间建立双向通信。
    @@ -71,7 +71,7 @@

    安全问题

    如果您不希望从其他网站接收 message,请不要为 message 事件添加任何事件侦听器。 这是一个完全万无一失的方式来避免安全问题。

    -

    如果您确实希望从其他网站接收 message,请始终使用 origin 和 source 属性验证发件人的身份。 任何窗口(包括例如 http://evil.example.com)都可以向任何其他窗口发送消息,并且您不能保证未知发件人不会发送恶意消息。 但是,验证身份后,您仍然应该始终验证接收到的消息的语法。 否则,您信任只发送受信任邮件的网站中的安全漏洞可能会在您的网站中打开跨网站脚本漏洞。

    +

    如果您确实希望从其他网站接收 message,请始终使用 origin 和 source 属性验证发件人的身份。任何窗口(包括例如 http://evil.example.com)都可以向任何其他窗口发送消息,并且您不能保证未知发件人不会发送恶意消息。但是,验证身份后,您仍然应该始终验证接收到的消息的语法。否则,您信任只发送受信任邮件的网站中的安全漏洞可能会在您的网站中打开跨网站脚本漏洞。

    当您使用 postMessage 将数据发送到其他窗口时,始终指定精确的目标 origin,而不是*。 恶意网站可以在您不知情的情况下更改窗口的位置,因此它可以拦截使用 postMessage 发送的数据。

    @@ -130,19 +130,19 @@

    示例

    注意

    -

    任何窗口可以在任何其他窗口访问此方法,在任何时间,无论文档在窗口中的位置,向其发送消息。 因此,用于接收消息的任何事件监听器必须首先使用 origin 和 source 属性来检查消息的发送者的身份。 这不能低估:无法检查 origin 和 source 属性会导致跨站点脚本攻击。

    +

    任何窗口可以在任何其他窗口访问此方法,在任何时间,无论文档在窗口中的位置,向其发送消息。因此,用于接收消息的任何事件监听器必须首先使用 origin 和 source 属性来检查消息的发送者的身份。 这不能低估:无法检查 origin 和 source 属性会导致跨站点脚本攻击。

    与任何异步调度的脚本(超时,用户生成的事件)一样,postMessage 的调用者不可能检测到侦听由 postMessage 发送的事件的事件处理程序何时抛出异常。

    分派事件的 origin 属性的值不受调用窗口中 document.domain 的当前值的影响。

    -

    仅对于 IDN 主机名,origin 属性的值不是始终为 Unicode 或 punycode; 在使用此属性时,如果您期望来自 IDN 网站的消息,则最大程度地兼容性检查 IDN 和 punycode 值。 这个值最终将始终是 IDN,但现在你应该同时处理 IDN 和 punycode 表单。

    +

    仅对于 IDN 主机名,origin 属性的值不是始终为 Unicode 或 punycode; 在使用此属性时,如果您期望来自 IDN 网站的消息,则最大程度地兼容性检查 IDN 和 punycode 值。这个值最终将始终是 IDN,但现在你应该同时处理 IDN 和 punycode 表单。

    当发送窗口包含 javascript: 或 data: URL 时,origin 属性的值是加载 URL 的脚本的

    在扩展{{Non-standard_inline}}中使用 window.postMessage

    -

    window.postMessage可用于以 chrome 代码运行的 JavaScript(例如,在扩展和特权代码中),但是分派事件的 source 属性总是为空作为安全限制。(其他属性具有其期望值。)发送到位于 chrome:URL 的窗口的消息的targetOrigin参数当前被错误解释,使得将导致发送消息的唯一值为“*”。 由于此值是不安全的,当目标窗口可以导航到其他地方的恶意网站,建议 postMessage 不用于与 chrome:页面的沟通; 使用不同的方法(如打开窗口时的查询字符串)与 chrome 窗口进行通信。 最后,在文件中向页面发布消息:URL 当前要求targetOrigin参数为“*” file://不能用作安全限制; 这个限制可能会在将来被修改。

    +

    window.postMessage可用于以 chrome 代码运行的 JavaScript(例如,在扩展和特权代码中),但是分派事件的 source 属性总是为空作为安全限制。(其他属性具有其期望值。)发送到位于 chrome:URL 的窗口的消息的targetOrigin参数当前被错误解释,使得将导致发送消息的唯一值为“*”。由于此值是不安全的,当目标窗口可以导航到其他地方的恶意网站,建议 postMessage 不用于与 chrome:页面的沟通; 使用不同的方法(如打开窗口时的查询字符串)与 chrome 窗口进行通信。最后,在文件中向页面发布消息:URL 当前要求targetOrigin参数为“*” file://不能用作安全限制; 这个限制可能会在将来被修改。

    规范

    diff --git a/files/zh-cn/web/api/window/requestanimationframe/index.html b/files/zh-cn/web/api/window/requestanimationframe/index.html index a09d4aeb44776d..9c5627a02e6ab9 100644 --- a/files/zh-cn/web/api/window/requestanimationframe/index.html +++ b/files/zh-cn/web/api/window/requestanimationframe/index.html @@ -39,7 +39,7 @@

    参数

    返回值

    -

    一个 long 整数,请求 ID ,是回调列表中唯一的标识。是个非零值,没别的意义。你可以传这个值给 {{domxref("window.cancelAnimationFrame()")}} 以取消回调函数。

    +

    一个 long 整数,请求 ID,是回调列表中唯一的标识。是个非零值,没别的意义。你可以传这个值给 {{domxref("window.cancelAnimationFrame()")}} 以取消回调函数。

    范例

    diff --git a/files/zh-cn/web/api/window/requestidlecallback/index.html b/files/zh-cn/web/api/window/requestidlecallback/index.html index 543ae16b447cce..26cae0fd2a4f05 100644 --- a/files/zh-cn/web/api/window/requestidlecallback/index.html +++ b/files/zh-cn/web/api/window/requestidlecallback/index.html @@ -35,7 +35,7 @@

    参数

    options {{optional_inline}}
    包括可选的配置参数。具有如下属性:
      -
    • timeout: 如果指定了 timeout,并且有一个正值,而回调在 timeout 毫秒过后还没有被调用,那么回调任务将放入事件循环中排队,即使这样做有可能对性能产生负面影响。
    • +
    • timeout:如果指定了 timeout,并且有一个正值,而回调在 timeout 毫秒过后还没有被调用,那么回调任务将放入事件循环中排队,即使这样做有可能对性能产生负面影响。
    diff --git a/files/zh-cn/web/api/window/sizetocontent/index.html b/files/zh-cn/web/api/window/sizetocontent/index.html index f667fc74eefadb..92da8d5ca822b9 100644 --- a/files/zh-cn/web/api/window/sizetocontent/index.html +++ b/files/zh-cn/web/api/window/sizetocontent/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef}}{{Non-standard_header}}
    -

    The Window.sizeToContent() 方法根据窗口内容调整窗口大小。 为了使其工作,在调用此函数时应加载 DOM 内容,例如,一旦抛出 {{event("DOMContentLoaded")}} 事件。

    +

    The Window.sizeToContent() 方法根据窗口内容调整窗口大小。为了使其工作,在调用此函数时应加载 DOM 内容,例如,一旦抛出 {{event("DOMContentLoaded")}} 事件。

    可以强行的调整窗口的最小尺寸。

    diff --git a/files/zh-cn/web/api/window/unhandledrejection_event/index.html b/files/zh-cn/web/api/window/unhandledrejection_event/index.html index a7000bddc484e7..f8ee279048aa65 100644 --- a/files/zh-cn/web/api/window/unhandledrejection_event/index.html +++ b/files/zh-cn/web/api/window/unhandledrejection_event/index.html @@ -13,7 +13,7 @@ ---
    {{APIRef("HTML DOM")}}
    -

    当 {{jsxref("Promise")}} 被 reject 且没有 reject 处理器的时候,会触发 unhandledrejection 事件;这可能发生在 {{domxref("window")}} 下,但也可能发生在 {{domxref("Worker")}} 中。 这对于调试和为意外情况提供后备错误处理非常有用。

    +

    当 {{jsxref("Promise")}} 被 reject 且没有 reject 处理器的时候,会触发 unhandledrejection 事件;这可能发生在 {{domxref("window")}} 下,但也可能发生在 {{domxref("Worker")}} 中。这对于调试和为意外情况提供后备错误处理非常有用。

    diff --git a/files/zh-cn/web/api/windoworworkerglobalscope/index.html b/files/zh-cn/web/api/windoworworkerglobalscope/index.html index b856a2d795cc15..b67ff12d100971 100644 --- a/files/zh-cn/web/api/windoworworkerglobalscope/index.html +++ b/files/zh-cn/web/api/windoworworkerglobalscope/index.html @@ -28,13 +28,13 @@

    属性

    {{domxref("WindowOrWorkerGlobalScope.caches")}} {{readOnlyinline}}
    -
    返回与当前上下文相关联的 {{domxref("CacheStorage")}} 对象。这个对象提供了一些功能,例如存储可供离线使用的 asstes,以及对 requests 生成自定义的 responses 。
    +
    返回与当前上下文相关联的 {{domxref("CacheStorage")}} 对象。这个对象提供了一些功能,例如存储可供离线使用的 asstes,以及对 requests 生成自定义的 responses。
    {{domxref("WindowOrWorkerGlobalScope.indexedDB")}} {{readonlyInline}}
    提供一种机制,以供应用可以异步访问 indexed databases;返回 {{domxref("IDBFactory")}} 对象。
    {{domxref("WindowOrWorkerGlobalScope.isSecureContext")}} {{readOnlyinline}}
    -
    返回一个 boolean 值, 表示当前上下文是否安全:安全返回 true,否则返回 false 。
    +
    返回一个 boolean 值,表示当前上下文是否安全:安全返回 true,否则返回 false 。
    {{domxref("WindowOrWorkerGlobalScope.origin")}} {{readOnlyinline}}
    -
    返回全局对象的 origin,序列化为 string 。
    +
    返回全局对象的 origin,序列化为 string。
    @@ -52,7 +52,7 @@

    方法

    {{domxref("WindowOrWorkerGlobalScope.clearTimeout()")}}
    取消对 {{domxref("WindowOrWorkerGlobalScope.setTimeout()")}} 的延迟执行。
    {{domxref("WindowOrWorkerGlobalScope.createImageBitmap()")}}
    -
    接受多个不同的图像源, 返回一个 {{domxref("Promise")}} which resolves to an {{domxref("ImageBitmap")}} 。可选: 指定 (sx, sy) with width sw, and height sh ,将源裁切成矩形。
    +
    接受多个不同的图像源,返回一个 {{domxref("Promise")}} which resolves to an {{domxref("ImageBitmap")}} 。可选:指定 (sx, sy) with width sw, and height sh,将源裁切成矩形。
    {{domxref("WindowOrWorkerGlobalScope.fetch()")}}
    开始从网络中 fetch 一个资源的进程。
    {{domxref("WindowOrWorkerGlobalScope.setInterval()")}}
    diff --git a/files/zh-cn/web/api/worker/messageerror_event/index.html b/files/zh-cn/web/api/worker/messageerror_event/index.html index 8ebfaae9cb229a..b88ccaa40c8cf2 100644 --- a/files/zh-cn/web/api/worker/messageerror_event/index.html +++ b/files/zh-cn/web/api/worker/messageerror_event/index.html @@ -30,7 +30,7 @@

    例子

    -

    创建一个 worker ,使用 addEventListener() 监听 message 和 messageerror 事件:

    +

    创建一个 worker,使用 addEventListener() 监听 message 和 messageerror 事件:

    // inside main.js
     
    diff --git a/files/zh-cn/web/api/worker/worker/index.html b/files/zh-cn/web/api/worker/worker/index.html
    index a0d1de391b6d1b..f76f1df092f988 100644
    --- a/files/zh-cn/web/api/worker/worker/index.html
    +++ b/files/zh-cn/web/api/worker/worker/index.html
    @@ -53,7 +53,7 @@ 

    异常

    • 当 document 不被允许启动 worker 的时候,将抛出一个 SecurityError 异常。例如:如果提供的 aURL 有语法错误,或者与同源策略相冲突(跨域访问)。
    • -
    • 如果 worker 的 MIME 类型不正确,将抛出一个 NetworkError 异常。worker 的 MIME 类型必须是 text/javascript 。
    • +
    • 如果 worker 的 MIME 类型不正确,将抛出一个 NetworkError 异常。worker 的 MIME 类型必须是 text/javascript。
    • 如果 aURL 无法被解析(格式错误),将抛出一个 SyntaxError 异常。
    diff --git a/files/zh-cn/web/api/workerglobalscope/index.html b/files/zh-cn/web/api/workerglobalscope/index.html index 30769f1db60909..905cb3b28df3ce 100644 --- a/files/zh-cn/web/api/workerglobalscope/index.html +++ b/files/zh-cn/web/api/workerglobalscope/index.html @@ -14,7 +14,7 @@ ---

    {{APIRef("Web Workers API")}}

    -

     Web Workers API  的 WorkerGlobalScope 接口 是一个代表了任何 scope of worker 的接口. Workers 没有浏览内容;这个 scope 包含的信息总是通过 {{domxref("Window")}} objects 传递 — 比如 event handlers, the console or the associated {{domxref("WorkerNavigator")}} object。每个 WorkerGlobalScope 都有自己的事件循环。

    +

     Web Workers API  的 WorkerGlobalScope 接口 是一个代表了任何 scope of worker 的接口。Workers 没有浏览内容;这个 scope 包含的信息总是通过 {{domxref("Window")}} objects 传递 — 比如 event handlers, the console or the associated {{domxref("WorkerNavigator")}} object。每个 WorkerGlobalScope 都有自己的事件循环。

    每个 worker type 都有专门的这个接口:{{domxref("DedicatedWorkerGlobalScope")}} for dedicated workers, {{domxref("SharedWorkerGlobalScope")}} for shared workers, and {{domxref("ServiceWorkerGlobalScope")}} for ServiceWorker. self 属性返回每个内容的专门 scope.

    diff --git a/files/zh-cn/web/api/workerglobalscope/self/index.html b/files/zh-cn/web/api/workerglobalscope/self/index.html index 09427aa7a73ba6..d69e46d36f6cf2 100644 --- a/files/zh-cn/web/api/workerglobalscope/self/index.html +++ b/files/zh-cn/web/api/workerglobalscope/self/index.html @@ -5,7 +5,7 @@ ---
    {{APIRef("Web Workers API")}}
    -

    self 是 {{domxref("WorkerGlobalScope")}} 的只读属性,它指向 WorkerGlobalScope 自身。通常情况下,它是如 {{domxref("DedicatedWorkerGlobalScope")}},  {{domxref("SharedWorkerGlobalScope")}}, 或 {{domxref("ServiceWorkerGlobalScope")}} 类型的 scope 。

    +

    self 是 {{domxref("WorkerGlobalScope")}} 的只读属性,它指向 WorkerGlobalScope 自身。通常情况下,它是如 {{domxref("DedicatedWorkerGlobalScope")}},  {{domxref("SharedWorkerGlobalScope")}}, 或 {{domxref("ServiceWorkerGlobalScope")}} 类型的 scope。

    语法

    @@ -47,7 +47,7 @@

    示例

    // etc. etc.
    -

    这会列出当前 worker scope 上完整的属性列表,在需要检测某个属性是否可用时非常有用。 详细列表也可查阅 Functions and classes available to Web Workers.

    +

    这会列出当前 worker scope 上完整的属性列表,在需要检测某个属性是否可用时非常有用。详细列表也可查阅 Functions and classes available to Web Workers.

    规范

    diff --git a/files/zh-cn/web/api/writablestream/index.md b/files/zh-cn/web/api/writablestream/index.md index 6e7e5017655c7c..81314c4a0a02b6 100644 --- a/files/zh-cn/web/api/writablestream/index.md +++ b/files/zh-cn/web/api/writablestream/index.md @@ -107,7 +107,7 @@ sendMessage("Hello, world.", writableStream); ### 背压 -由于 API 支持[背压](/zh-CN/docs/Web/API/Streams_API/Concepts#backpressure)的方式(其在代码中的实现)可能不太明显。要了解背压是如何实现的,请注意以下三点: +由于 API 支持[背压](/zh-CN/docs/Web/API/Streams_API/Concepts#backpressure)的方式(其在代码中的实现)可能不太明显。要了解背压是如何实现的,请注意以下三点: - 为创建计数策略(第 35 行)而设置的 `highWaterMark` 属性,其用于设置 `WritableStream` 实例处理单个 `write()` 操作时可接受的最大数据量。在该示例中,它是可以传递给 `defaultWriter.write()` 的最大数据量(第 11 行)。 - `defaultWriter.ready` 属性返回一个当 sink(`WritableStream` 构造函数的第一个属性)完成写入数据时兑现的 promise。数据源可以写入更多的数据(第 9 行)或者调用 `close()`(第 24 行)。过早调用 close() 会阻止数据写入。这就是示例调用 `defaultWriter.ready` 两次的原因(第 9 行和第 22 行)。 diff --git a/files/zh-cn/web/api/writablestream/writablestream/index.md b/files/zh-cn/web/api/writablestream/writablestream/index.md index 49ee9410e54a20..cf71866aeed2c7 100644 --- a/files/zh-cn/web/api/writablestream/writablestream/index.md +++ b/files/zh-cn/web/api/writablestream/writablestream/index.md @@ -121,7 +121,7 @@ sendMessage("Hello, world.", writableStream); ### 背压 -由于 API 支持背压的方式(其在代码中的实现)可能不太明显。要了解背压是如何实现的,请注意以下三点: +由于 API 支持背压的方式(其在代码中的实现)可能不太明显。要了解背压是如何实现的,请注意以下三点: - 为创建计数策略(第 35 行)而设置的 `highWaterMark` 属性,其用于设置 `WritableStream` 实例处理单个 `write()` 操作时可接受的最大数据量。在该示例中,它是可以传递给 `defaultWriter.write()` 的最大数据量(第 11 行)。 - `defaultWriter.ready` 属性返回一个当 sink(`WritableStream` 构造函数的第一个属性)完成写入数据时兑现的 promise。数据源可以写入更多的数据(第 9 行)或者调用 `close()`(第 24 行)。过早调用 close() 会阻止数据写入。这就是示例调用 `defaultWriter.ready` 两次的原因(第 9 行和第 22 行)。 diff --git a/files/zh-cn/web/api/xmlhttprequest/error_event/index.html b/files/zh-cn/web/api/xmlhttprequest/error_event/index.html index b244a904ba2c6d..38ccb6f745dd49 100644 --- a/files/zh-cn/web/api/xmlhttprequest/error_event/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/error_event/index.html @@ -134,6 +134,6 @@

    浏览器兼容性

    其他

      -
    • 相关事件: {{domxref("XMLHttpRequest/loadstart_event", "loadstart")}}, {{domxref("XMLHttpRequest/load_event", "load")}}, {{domxref("XMLHttpRequest/progress_event", "progress")}}, {{domxref("XMLHttpRequest/loadend_event", "loadend")}}, {{domxref("XMLHttpRequest/abort_event", "abort")}}
    • +
    • 相关事件:{{domxref("XMLHttpRequest/loadstart_event", "loadstart")}}, {{domxref("XMLHttpRequest/load_event", "load")}}, {{domxref("XMLHttpRequest/progress_event", "progress")}}, {{domxref("XMLHttpRequest/loadend_event", "loadend")}}, {{domxref("XMLHttpRequest/abort_event", "abort")}}
    • 监视进度
    diff --git a/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html b/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html index de6e8f82fe9f2f..dd9d7c3c8b4bb5 100644 --- a/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/getallresponseheaders/index.html @@ -5,7 +5,7 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.getAllResponseHeaders() 方法返回所有的响应头,以 {{Glossary('CRLF')}} 分割的字符串,或者 null 如果没有收到任何响应。 注意: 对于复合请求( multipart requests ),这个方法返回当前请求的头部,而不是最初的请求的头部。

    +

    XMLHttpRequest.getAllResponseHeaders() 方法返回所有的响应头,以 {{Glossary('CRLF')}} 分割的字符串,或者 null 如果没有收到任何响应。 注意: 对于复合请求(multipart requests),这个方法返回当前请求的头部,而不是最初的请求的头部。

    DOMString getAllResponseHeaders();
    diff --git a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html index 0c206c03f34804..5428a77d886ed3 100644 --- a/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/getresponseheader/index.html @@ -78,5 +78,5 @@

    参见

  • HTTP headers
  • {{DOMxRef("XMLHttpRequest.getAllResponseHeaders", "getAllResponseHeaders()")}}
  • {{DOMxRef("XMLHttpRequest.response", "response")}}
  • -
  • 设置请求头: {{DOMxRef("XMLHttpRequest.setRequestHeader", "setRequestHeader()")}}
  • +
  • 设置请求头:{{DOMxRef("XMLHttpRequest.setRequestHeader", "setRequestHeader()")}}
  • diff --git a/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html index 23a37d75aee374..30822bf5632068 100644 --- a/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/html_in_xmlhttprequest/index.html @@ -11,7 +11,7 @@

    局限

    用法

    -

    使用 XMLHttpRequest 将 HTML 资源恢复为 DOM 就像使用 XMLHttpRequest 将 XML 资源恢复为 DOM 一样,除了您不能使用同步模式,您必须通过将字符串 “document” 分配给 responseType 属性来显式请求文档调用 open() 之后调用 send 之前的 XMLHttpRequest 对象。

    +

    使用 XMLHttpRequest 将 HTML 资源恢复为 DOM 就像使用 XMLHttpRequest 将 XML 资源恢复为 DOM 一样,除了您不能使用同步模式,您必须通过将字符串“document”分配给 responseType 属性来显式请求文档调用 open() 之后调用 send 之前的 XMLHttpRequest 对象。

     

    @@ -28,7 +28,7 @@

    功能检测

    方法 1

    -

    该方法依赖于功能的 “强制异步” 性质。当你尝试设置一个以 “sync” 方式打开的 XMLHttpRequest 对象后,尝试将设置 responseType 会在实现该功能的浏览器上引发错误,其他浏览器则运行良好。

    +

    该方法依赖于功能的“强制异步”性质。当你尝试设置一个以“sync”方式打开的 XMLHttpRequest 对象后,尝试将设置 responseType 会在实现该功能的浏览器上引发错误,其他浏览器则运行良好。

    function HTMLinXHR() {
    @@ -104,7 +104,7 @@ 

    字符编码

    老版本的浏览器中处理 HTML

    -

    XMLHttpRequest 最初只支持 XML 解析。 HTML 解析支持是最近的一个补充。对于较老的浏览器,您甚至可以使用与正则表达式关联的 responseText 属性,以获取例如已知其 ID 的 HTML 元素的源代码:

    +

    XMLHttpRequest 最初只支持 XML 解析。HTML 解析支持是最近的一个补充。对于较老的浏览器,您甚至可以使用与正则表达式关联的 responseText 属性,以获取例如已知其 ID 的 HTML 元素的源代码:

    function getHTML (oXHR, sTargetId) {
       var  rOpen = new RegExp("<(?!\!)\\s*([^\\s>]+)[^>]*\\s+id\\=[\"\']" + sTargetId + "[\"\'][^>]*>" ,"i"),
    diff --git a/files/zh-cn/web/api/xmlhttprequest/load_event/index.html b/files/zh-cn/web/api/xmlhttprequest/load_event/index.html
    index 4dabd7c59169a7..9c4a457ea23944 100644
    --- a/files/zh-cn/web/api/xmlhttprequest/load_event/index.html
    +++ b/files/zh-cn/web/api/xmlhttprequest/load_event/index.html
    @@ -135,6 +135,6 @@ 

    浏览器兼容性

    了解更多

      -
    • 相关事件: {{domxref("XMLHttpRequest/loadstart_event", "loadstart")}}, {{domxref("XMLHttpRequest/loadend_event", "loadend")}}, {{domxref("XMLHttpRequest/progress_event", "progress")}}, {{domxref("XMLHttpRequest/error_event", "error")}}, {{domxref("XMLHttpRequest/abort_event", "abort")}}
    • +
    • 相关事件:{{domxref("XMLHttpRequest/loadstart_event", "loadstart")}}, {{domxref("XMLHttpRequest/loadend_event", "loadend")}}, {{domxref("XMLHttpRequest/progress_event", "progress")}}, {{domxref("XMLHttpRequest/error_event", "error")}}, {{domxref("XMLHttpRequest/abort_event", "abort")}}
    • 监测进度
    diff --git a/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html b/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html index 5e445908b97459..db40475b4e68d5 100644 --- a/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/loadend_event/index.html @@ -4,7 +4,7 @@ translation_of: Web/API/XMLHttpRequest/loadend_event original_slug: Web/Events/loadend --- -

    loadend 事件总是在一个资源的加载进度停止之后被触发 (例如,在已经触发 “error”,“abort” 或 “load” 事件之后)。这适用于 {{domxref("XMLHttpRequest")}} 调用,以及 {{htmlelement("img")}} 或 {{htmlelement("video")}} 之类元素的内容。

    +

    loadend 事件总是在一个资源的加载进度停止之后被触发 (例如,在已经触发“error”,“abort”或“load”事件之后)。这适用于 {{domxref("XMLHttpRequest")}} 调用,以及 {{htmlelement("img")}} 或 {{htmlelement("video")}} 之类元素的内容。

    General info

    diff --git a/files/zh-cn/web/api/xmlhttprequest/readystate/index.html b/files/zh-cn/web/api/xmlhttprequest/readystate/index.html index 938b177f95fb7e..f117f49005d8ef 100644 --- a/files/zh-cn/web/api/xmlhttprequest/readystate/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/readystate/index.html @@ -47,9 +47,9 @@
    UNSENT
    -
    XMLHttpRequest 代理已被创建, 但尚未调用 open() 方法。
    +
    XMLHttpRequest 代理已被创建,但尚未调用 open() 方法。
    OPENED
    -
    open() 方法已经被触发。在这个状态中,可以通过  setRequestHeader() 方法来设置请求的头部, 可以调用 send() 方法来发起请求。
    +
    open() 方法已经被触发。在这个状态中,可以通过  setRequestHeader() 方法来设置请求的头部,可以调用 send() 方法来发起请求。
    HEADERS_RECEIVED
    send() 方法已经被调用,响应头也已经被接收。
    LOADING
    diff --git a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html index 8aadd69bffe06b..b91bc824159c6e 100644 --- a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.html @@ -7,7 +7,7 @@ ---

    {{APIRef('XMLHttpRequest')}}

    -

    XMLHttpRequest.responseXML 属性是一个只读值,它返回一个包含请求检索的 HTML 或 XML 的{{domxref("Document")}},如果请求未成功,尚未发送,或者检索的数据无法正确解析为 XML 或 HTML,则为 null。默认是当作“text / xml” 来解析。当 {{domxref("XMLHttpRequest.responseType", "responseType")}} 设置为 “document” 并且请求已异步执行时,响应将被当作 “text / html” 来解析。responseXML 对于任何其他类型的数据以及 data: URLs 为 null。

    +

    XMLHttpRequest.responseXML 属性是一个只读值,它返回一个包含请求检索的 HTML 或 XML 的{{domxref("Document")}},如果请求未成功,尚未发送,或者检索的数据无法正确解析为 XML 或 HTML,则为 null。默认是当作“text / xml”来解析。当 {{domxref("XMLHttpRequest.responseType", "responseType")}} 设置为“document”并且请求已异步执行时,响应将被当作“text / html”来解析。responseXML 对于任何其他类型的数据以及 data: URLs 为 null。

    responseXML 在这个属性的历史堪称神器,它可以同时在 HTML 和 XML 中工作

    diff --git a/files/zh-cn/web/api/xmlhttprequest/send/index.html b/files/zh-cn/web/api/xmlhttprequest/send/index.html index 146b0d1445bae6..8603e41edc09de 100644 --- a/files/zh-cn/web/api/xmlhttprequest/send/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/send/index.html @@ -79,7 +79,7 @@

    例外

    发送二进制内容的最佳方法(如上传文件)是使用一个与 send() 方法结合的 ArrayBufferView 或者 Blobs

    -

    案例: GET

    +

    案例:GET

    var xhr = new XMLHttpRequest();
     xhr.open('GET', '/server', true);
    @@ -95,7 +95,7 @@ 

    案例: GET

    // xhr.send(document);
    -

    案例: POST

    +

    案例:POST

    var xhr = new XMLHttpRequest();
     xhr.open("POST", '/server', true);
    diff --git a/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html b/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html
    index fb47950e45d7f6..0ab1c95aba875a 100644
    --- a/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html
    +++ b/files/zh-cn/web/api/xmlhttprequest/sending_and_receiving_binary_data/index.html
    @@ -12,7 +12,7 @@ 

    使用 JavaScript

    可以通过设置一个 XMLHttpRequest 对象的 responseType属性来改变一个从服务器上返回的响应的数据类型。可用的属性值为空字符串 (默认),"arraybuffer"、"blob"、"document"、"json" 和 "text"。response 属性的值会根据 responseType 属性包含实体主体(entity body),它可能会是一个 ArrayBufferBlobDocumentJSON, string,或者为NULL(如果请求未完成或失败)

    -

    下例读取了一个二进制图像文件,并且由该文件的二进制原生字节创建了一个 8 位无符号整数的数组。注意,这不会解码图像,但会读取像素。 你需要一个 png 解码库(png decoding library)。

    +

    下例读取了一个二进制图像文件,并且由该文件的二进制原生字节创建了一个 8 位无符号整数的数组。注意,这不会解码图像,但会读取像素。你需要一个 png 解码库(png decoding library)。

    var oReq = new XMLHttpRequest();
     oReq.open("GET", "/myfile.png", true);
    @@ -81,7 +81,7 @@ 

    发送二进制数据

    // 上传完成后。 }; -var bb = new BlobBuilder(); // 需要合适的前缀: window.MozBlobBuilder 或者 window.WebKitBlobBuilder +var bb = new BlobBuilder(); // 需要合适的前缀:window.MozBlobBuilder 或者 window.WebKitBlobBuilder bb.append('abc123'); oReq.send(bb.getBlob('text/plain')); diff --git a/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html b/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html index 13c4e100dd9274..5ee53f48f086f0 100644 --- a/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/synchronous_and_asynchronous_requests/index.html @@ -41,7 +41,7 @@

    例子:在控制台输出

    例子:创建一个标准的方法来读取外部文件

    -

    在一些需求情况下,必须读取多个外部文件。这是一个标准的函数. 该函数使用 XMLHttpRequest 对象进行异步请求。而且可以为每个文件读取完成后指定不同的回调函数。

    +

    在一些需求情况下,必须读取多个外部文件。这是一个标准的函数。该函数使用 XMLHttpRequest 对象进行异步请求。而且可以为每个文件读取完成后指定不同的回调函数。

    function xhrSuccess() {
         this.callback.apply(this, this.arguments);
    @@ -70,7 +70,7 @@ 

    例子:创建 loadFile("message.txt", showMessage, "New message!\n\n");

    -

    实用函数 loadFile 的签名声明(i)要读取的目标 URL(通过 HTTP GET),(ii)成功完成 XHR 操作时执行的函数,以及(iii)任意列表的附加参数 “通过“ XHR 对象到成功回调函数。

    +

    实用函数 loadFile 的签名声明(i)要读取的目标 URL(通过 HTTP GET),(ii)成功完成 XHR 操作时执行的函数,以及(iii)任意列表的附加参数“通过“XHR 对象到成功回调函数。

    第 1 行声明 XHR 操作成功完成时调用的函数。它又调用已经分配给 XHR 对象(第 7 行)属性的 loadFile 函数(本例中为函数 showMessage)的调用中指定的回调函数。提供给调用函数 loadFile 的附加参数(如果有的话)被“应用”到回调函数的运行中。

    @@ -199,7 +199,7 @@

    例子:在 Worker<

    将同步 XHR 用例调整到 Beacon API

    -

    在某些情况下,XMLHttpRequest 的同步使用是不可替代的,就像在 window.onunloadwindow.onbeforeunload 事件期间一样。 您应该考虑使用带有 Keepalive 标志的 fetch API。 当 keepalivefetch 不可用时,可以考虑使用 navigator.sendBeacon API 可以支持这些用例,通常在提供良好 UX 的同时。

    +

    在某些情况下,XMLHttpRequest 的同步使用是不可替代的,就像在 window.onunloadwindow.onbeforeunload 事件期间一样。您应该考虑使用带有 Keepalive 标志的 fetch API。当 keepalivefetch 不可用时,可以考虑使用 navigator.sendBeacon API 可以支持这些用例,通常在提供良好 UX 的同时。

    以下示例(来自 sendBeacon 文档)显示了一个理论分析代码,该代码尝试通过在卸载处理程序中使用同步 XMLHttpRequest 将数据提交给服务器。这导致页面的卸载被延迟。

    diff --git a/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html b/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html index 00afe18819e445..e7b4af98bc0e10 100644 --- a/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest/index.html @@ -63,7 +63,7 @@

    解析和操
    1. 使用 XMLHttpRequest.responseXML 属性。
    2. 将内容通过 fragment.body.innerHTML 注入到一个 文档片段 中,并遍历 DOM 中的片段。
    3. -
    4. 如果你预先知道 HTML 文档的内容,你可以使用 RegExp 。如果你用 RegExp 扫描时受到换行符的影响,你也许想要删除所有的换行符。 然而,这种方法是"最后手段",因为如果 HTML 代码发生轻微变化,该方法将可能失败。
    5. +
    6. 如果你预先知道 HTML 文档的内容,你可以使用 RegExp 。如果你用 RegExp 扫描时受到换行符的影响,你也许想要删除所有的换行符。然而,这种方法是"最后手段",因为如果 HTML 代码发生轻微变化,该方法将可能失败。

    处理二进制数据

    @@ -84,7 +84,7 @@

    处理二进制数据

    var oReq = new XMLHttpRequest();
     
     oReq.onload = function(e) {
    -  var arraybuffer = oReq.response; // 不是 responseText !
    +  var arraybuffer = oReq.response; // 不是 responseText!
       /* ... */
     }
     oReq.open("GET", url);
    @@ -95,7 +95,7 @@ 

    处理二进制数据

    监测进度

    -

    XMLHttpRequest 提供了各种在请求被处理期间发生的事件以供监听。这包括定期进度通知、 错误通知,等等。

    +

    XMLHttpRequest 提供了各种在请求被处理期间发生的事件以供监听。这包括定期进度通知、错误通知,等等。

    支持 DOM 的 progress 事件监测之于 XMLHttpRequest 传输,遵循 Web API 进度事件规范:这些事件实现了 {{domxref("ProgressEvent")}} 接口。

    @@ -721,7 +721,7 @@

    最后修改日期改变后的操

    跨站的 XMLHttpRequest

    -

    现代浏览器可以通过执行 WebApps 工作小组通过的 Access Control for Cross-Site Requests 标注来支持跨站请求。只要服务器端的配置允许您从您的 Web 应用发送请求,就可以使用 XMLHttpRequest 。 否则,会抛出一个 INVALID_ACCESS_ERR 异常

    +

    现代浏览器可以通过执行 WebApps 工作小组通过的 Access Control for Cross-Site Requests 标注来支持跨站请求。只要服务器端的配置允许您从您的 Web 应用发送请求,就可以使用 XMLHttpRequest 。否则,会抛出一个 INVALID_ACCESS_ERR 异常

    绕过缓存

    @@ -759,7 +759,7 @@

    安全性

    XMLHttpRequests 被停止

    -

    如果你的 XMLHttpRequest 收到 status=0statusText=null 的返回,这意味着请求无法执行。 就是无法发送. 一个可能导致的原因是当 XMLHttpRequest origin (创建的 XMLHttpRequest) 改变时,XMLHttpRequest 执行 open().。这种情况是可能发生的,举个例子,我们在一个窗口的onunload事件中关闭 XMLHttpRequest,但实际上在即将关闭窗口时,之前创建的 XMLHttpRequest 仍然在那里,最后当这个窗口失去焦点、另一个窗口获得焦点时,它还是发送了请求(也就是open())。最有效的避免这个问题的方法是为新窗口的{{event("activate")}}事件设置一个监听器,一旦窗口关闭,它的{{event("unload")}}事件便触发。

    +

    如果你的 XMLHttpRequest 收到 status=0statusText=null 的返回,这意味着请求无法执行。就是无法发送. 一个可能导致的原因是当 XMLHttpRequest origin (创建的 XMLHttpRequest) 改变时,XMLHttpRequest 执行 open().。这种情况是可能发生的,举个例子,我们在一个窗口的onunload事件中关闭 XMLHttpRequest,但实际上在即将关闭窗口时,之前创建的 XMLHttpRequest 仍然在那里,最后当这个窗口失去焦点、另一个窗口获得焦点时,它还是发送了请求(也就是open())。最有效的避免这个问题的方法是为新窗口的{{event("activate")}}事件设置一个监听器,一旦窗口关闭,它的{{event("unload")}}事件便触发。

    Worker

    diff --git a/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest_in_ie6/index.html b/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest_in_ie6/index.html index 2c1231a04afbf5..e40b570a5e04d5 100644 --- a/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest_in_ie6/index.html +++ b/files/zh-cn/web/api/xmlhttprequest/using_xmlhttprequest_in_ie6/index.html @@ -13,7 +13,7 @@

    如果你需要支持 Internet Explorer 6 和更老的浏览器,你需要像下方所示扩展你的代码:

    if (window.XMLHttpRequest) {
    -    //Firefox、 Opera、 IE7 和其它浏览器使用本地 JavaScript 对象
    +    //Firefox、Opera、IE7 和其它浏览器使用本地 JavaScript 对象
         var request = new XMLHttpRequest();
     } else {
         //IE 5 和 IE 6 使用 ActiveX 控件
    diff --git a/files/zh-cn/web/css/-moz-outline-radius/index.html b/files/zh-cn/web/css/-moz-outline-radius/index.html
    index 11d069dd944c00..315d217dc87519 100644
    --- a/files/zh-cn/web/css/-moz-outline-radius/index.html
    +++ b/files/zh-cn/web/css/-moz-outline-radius/index.html
    @@ -82,7 +82,7 @@ 

    结果

    备注

      -
    • 直至 Firefox 50 之前,dotted 或 dashed 圆角被渲染为 solid ,详见 {{bug("382721")}}
    • +
    • 直至 Firefox 50 之前,dotted 或 dashed 圆角被渲染为 solid,详见 {{bug("382721")}}
    • 未来的 Gecko/Firefox 版本可能完全弃用这个属性。详见 {{bug("593717")}}.
    diff --git a/files/zh-cn/web/css/-moz-user-input/index.html b/files/zh-cn/web/css/-moz-user-input/index.html index 77804b5d301971..d3af38e99aca73 100644 --- a/files/zh-cn/web/css/-moz-user-input/index.html +++ b/files/zh-cn/web/css/-moz-user-input/index.html @@ -7,7 +7,7 @@

    Summary

    -

    在 Mozilla 应用程序中,-moz-user-input 决定元素是否将接受用户输入。 A 类似的属性 user-focus 是在CSS3 UI 规范的前身的早期草案中提出的,但被工作组拒绝。

    +

    在 Mozilla 应用程序中,-moz-user-input 决定元素是否将接受用户输入。A 类似的属性 user-focus 是在CSS3 UI 规范的前身的早期草案中提出的,但被工作组拒绝。

    {{cssinfo}}

    diff --git a/files/zh-cn/web/css/-webkit-touch-callout/index.html b/files/zh-cn/web/css/-webkit-touch-callout/index.html index 2702521b319313..a816adf5a53589 100644 --- a/files/zh-cn/web/css/-webkit-touch-callout/index.html +++ b/files/zh-cn/web/css/-webkit-touch-callout/index.html @@ -7,7 +7,7 @@

    概述

    -

    -webkit-touch-callout 这个CSS 属性禁用了默认的 callout 展示, callout 是指当触摸并按住一个元素的时候出现的提示。
    +

    -webkit-touch-callout 这个CSS 属性禁用了默认的 callout 展示,callout 是指当触摸并按住一个元素的时候出现的提示。

    当在 iOS 上一直按住一个目标元素时,Safari 会展示一个关于这个链接的 callout 信息。webkit-touch-callout属性允许禁用掉这一行为。

    diff --git a/files/zh-cn/web/css/@charset/index.html b/files/zh-cn/web/css/@charset/index.html index 1373436392bdb7..00fffbf05634c5 100644 --- a/files/zh-cn/web/css/@charset/index.html +++ b/files/zh-cn/web/css/@charset/index.html @@ -21,7 +21,7 @@

    概述

  • 文件的开头的 Unicode byte-order 字符值。
  • 由 Content-Type:HTTP header 中的 charset 属性给出的值或用于提供样式表的协议中的等效值。
  • CSS @规则  @charset。
  • -
  • 使用参考文档定义的字符编码: {{ HTMLElement("link") }} 元素的 charset 属性。 该方法在 HTML5 标准中已废除,无法使用。
  • +
  • 使用参考文档定义的字符编码: {{ HTMLElement("link") }} 元素的 charset 属性。该方法在 HTML5 标准中已废除,无法使用。
  • 假设文档是 UTF-8。
  • diff --git a/files/zh-cn/web/css/@counter-style/additive-symbols/index.html b/files/zh-cn/web/css/@counter-style/additive-symbols/index.html index 42f50f2d518123..c5409a08124a0f 100644 --- a/files/zh-cn/web/css/@counter-style/additive-symbols/index.html +++ b/files/zh-cn/web/css/@counter-style/additive-symbols/index.html @@ -5,7 +5,7 @@ ---
    {{CSSRef}}
    -

    additive-symbols 描述符 定义符号,用于值可累积的可数的 {{cssxref('system')}}的项 。 additive-symbols 定义累积的的元组(tuples),每个元组项都包含一个符号和一个非负整数的权重。additive system 被用于构造sign-value numbering (符号 - 值,指数字的值就是是符号加在一起的值)系统,比如 罗马数字。

    +

    additive-symbols 描述符 定义符号,用于值可累积的可数的 {{cssxref('system')}}的项。 additive-symbols 定义累积的的元组(tuples),每个元组项都包含一个符号和一个非负整数的权重。additive system 被用于构造sign-value numbering (符号 - 值,指数字的值就是是符号加在一起的值)系统,比如 罗马数字。

    additive-symbols: 3 "0";
     additive-symbols: 3 "0", 2 "\2E\20";
    diff --git a/files/zh-cn/web/css/@counter-style/index.html b/files/zh-cn/web/css/@counter-style/index.html
    index edcb8995fe1590..d3227c14065ac5 100644
    --- a/files/zh-cn/web/css/@counter-style/index.html
    +++ b/files/zh-cn/web/css/@counter-style/index.html
    @@ -7,7 +7,7 @@
     
     

    概要

    -

    @counter-style 是一个 CSS at-rule ,它让开发者可以自定义 counter 的样式。 一个 @counter-style 规则 定义了如何把一个计数器的值转化为字符串表示。

    +

    @counter-style 是一个 CSS at-rule ,它让开发者可以自定义 counter 的样式。一个 @counter-style 规则 定义了如何把一个计数器的值转化为字符串表示。

    最初版的 CSS 定义了一系列很好用的计数器样式, 尽管近几年又添加了很多样式,但是这种限制方式被证明已经不能满足全球化的排版了。@counter-style 规则用一种开放的方式弥补了这一缺点,在预定义的样式不能满足需求时,它可以使开发者自定义他们自己的计数器样式。

    diff --git a/files/zh-cn/web/css/@counter-style/pad/index.html b/files/zh-cn/web/css/@counter-style/pad/index.html index 2aff9f0396dff9..dfe42cda6223c4 100644 --- a/files/zh-cn/web/css/@counter-style/pad/index.html +++ b/files/zh-cn/web/css/@counter-style/pad/index.html @@ -5,7 +5,7 @@ ---
    {{CSSRef}}
    -

    pad属性和自定义记数样式一起使用时,可以用来限定记数样式的最小长度。如果某个记数样式小于 pad 所指定的长度,那么会用 pad 指定的填充字符串来填充至指定长度。如果比 pad 所指定的长度长,则会正常显示. Pad 属性的第一个参数是最小长度,第二个参数是填充字符串。一个常见的用处是序号编号需要填充两位的时候,即需要编号"01","02","03",……, 而不仅仅是 1, 2, 3...

    +

    pad属性和自定义记数样式一起使用时,可以用来限定记数样式的最小长度。如果某个记数样式小于 pad 所指定的长度,那么会用 pad 指定的填充字符串来填充至指定长度。如果比 pad 所指定的长度长,则会正常显示。Pad 属性的第一个参数是最小长度,第二个参数是填充字符串。一个常见的用处是序号编号需要填充两位的时候,即需要编号"01","02","03",……, 而不仅仅是 1, 2, 3...

    {{cssinfo}}

    diff --git a/files/zh-cn/web/css/@font-face/index.html b/files/zh-cn/web/css/@font-face/index.html index 60ac61388a8479..76f851b220387c 100644 --- a/files/zh-cn/web/css/@font-face/index.html +++ b/files/zh-cn/web/css/@font-face/index.html @@ -44,7 +44,7 @@

    取值

    {{cssxref("@font-face/font-family", "font-family")}}
    所指定的字体名字将会被用于 font 或 font-family 属性 ( i.e. font-family: <family-name>; )
    {{cssxref("@font-face/src", "src")}}
    -
    远程字体文件位置的 URL 或者用户计算机上的字体名称, 可以使用 local 语法通过名称指定用户的本地计算机上的字体 ( i.e. src: local('Arial'); )。 如果找不到该字体,将会尝试其他来源,直到找到它。
    +
    远程字体文件位置的 URL 或者用户计算机上的字体名称, 可以使用 local 语法通过名称指定用户的本地计算机上的字体 ( i.e. src: local('Arial'); )。如果找不到该字体,将会尝试其他来源,直到找到它。
    {{cssxref("@font-face/font-variant", "font-variant")}}
    A {{cssxref("font-variant")}} value.
    {{cssxref("@font-face/font-stretch", "font-stretch")}}
    @@ -120,7 +120,7 @@

    注意

    • 这里使用的 Web fonts 仍然受到同域限制  (字体文件必须和调用它的网页同一域), 但可以使用 HTTP access controls 解除这一限制。
    • 因为这里没有为 TrueType(ttf), OpenType(otf) 和 Web Open File Format(WOFF) 字体定义 MIME,因此不能为这些字体类型设置特定的 MIME(实际上 WOFF 的 MIME 将会是 application/font-woff,但浏览器对此 MIME 的识别还不统一,其它字体情况也类似,可暂时使用 application/octet-stream)。 
    • -
    • 你不能在一个 CSS 选择器中定义 @font-face 。例如,这样写是无效的: +
    • 你不能在一个 CSS 选择器中定义 @font-face。例如,这样写是无效的:
      .className {
         @font-face {
           font-family: MyHelvetica;
      diff --git a/files/zh-cn/web/css/@import/index.html b/files/zh-cn/web/css/@import/index.html
      index 529c51d850f6af..1df63e66f88a12 100644
      --- a/files/zh-cn/web/css/@import/index.html
      +++ b/files/zh-cn/web/css/@import/index.html
      @@ -24,7 +24,7 @@ 

      语法

      url
      -
      是一个表示要引入资源位置的 {{cssxref("<string>")}} 或者 {{cssxref("<uri>")}} 。 这个 URL 可以是绝对路径或者相对路径。 要注意的是这个 URL 不需要指明一个文件; 可以只指明包名,然后合适的文件会被自动选择 (e.g. chrome://communicator/skin/). See here 了解更多。
      +
      是一个表示要引入资源位置的 {{cssxref("<string>")}} 或者 {{cssxref("<uri>")}} 。这个 URL 可以是绝对路径或者相对路径。要注意的是这个 URL 不需要指明一个文件;可以只指明包名,然后合适的文件会被自动选择 (e.g. chrome://communicator/skin/). See here 了解更多。
      list-of-media-queries
      是一个逗号分隔的 媒体查询 条件列表,决定通过 URL 引入的 CSS 规则 在什么条件下应用。如果浏览器不支持列表中的任何一条媒体查询条件,就不会引入 URL 指明的 CSS 文件。
      diff --git a/files/zh-cn/web/css/@layer/index.md b/files/zh-cn/web/css/@layer/index.md index d9339793978702..6c0ad4d3209e1b 100644 --- a/files/zh-cn/web/css/@layer/index.md +++ b/files/zh-cn/web/css/@layer/index.md @@ -12,7 +12,7 @@ browser-compat: css.at-rules.layer --- {{CSSRef}}{{SeeCompatTable}} -[CSS](/en-US/docs/Web/CSS) [@规则](/en-US/docs/Web/CSS/At-rule) 中的`@layer`声明了一个 _级联层_, 同一层内的规则将级联在一起, 这给予了开发者对层叠机制的更多控制。 +[CSS](/en-US/docs/Web/CSS) [@规则](/en-US/docs/Web/CSS/At-rule) 中的`@layer`声明了一个 _级联层_,同一层内的规则将级联在一起,这给予了开发者对层叠机制的更多控制。 ```css @layer utilities { diff --git a/files/zh-cn/web/css/@media/index.html b/files/zh-cn/web/css/@media/index.html index 00f8540b12984a..18dce49f1fdcf3 100644 --- a/files/zh-cn/web/css/@media/index.html +++ b/files/zh-cn/web/css/@media/index.html @@ -10,7 +10,7 @@ ---
      {{CSSRef}}
      -
      @media CSS @规则 可用于基于一个或多个 媒体查询 的结果来应用样式表的一部分。 使用它,您可以指定一个媒体查询和一个 CSS 块,当且仅当该媒体查询与正在使用其内容的设备匹配时,该 CSS 块才能应用于该文档。
      +
      @media CSS @规则 可用于基于一个或多个 媒体查询 的结果来应用样式表的一部分。使用它,您可以指定一个媒体查询和一个 CSS 块,当且仅当该媒体查询与正在使用其内容的设备匹配时,该 CSS 块才能应用于该文档。
      @@ -94,13 +94,13 @@

      可访问性

      empx都是有效单位,但如果用户更改浏览器文本大小,em的效果会更好。

      -

      考虑使用 4 级媒体查询来改善用户体验。 例如,使用prefers-reduced-motion检测用户是否已请求系统最小化其使用的动画或动作量。

      +

      考虑使用 4 级媒体查询来改善用户体验。例如,使用prefers-reduced-motion检测用户是否已请求系统最小化其使用的动画或动作量。

      安全

      由于媒体查询可以洞察用户正在使用的设备的功能(以及扩展的功能和设计),因此有可能滥用它们来构造“指纹”来识别设备,或者至少 将其分类为某些细节,这可能是用户不希望看到的。

      -

      由于存在这种潜力,浏览器可能会选择以某种方式捏造返回的值,以防止它们被用来精确地标识计算机。 浏览器可能还会在此区域提供其他措施。 例如,如果启用了 Firefox 的“抵抗指纹”设置,则许多媒体查询会报告默认值,而不是代表实际设备状态的值。

      +

      由于存在这种潜力,浏览器可能会选择以某种方式捏造返回的值,以防止它们被用来精确地标识计算机。浏览器可能还会在此区域提供其他措施。例如,如果启用了 Firefox 的“抵抗指纹”设置,则许多媒体查询会报告默认值,而不是代表实际设备状态的值。

      规范

      diff --git a/files/zh-cn/web/css/@property/initial-value/index.html b/files/zh-cn/web/css/@property/initial-value/index.html index c3242cbcee3a0e..679f73658890c4 100644 --- a/files/zh-cn/web/css/@property/initial-value/index.html +++ b/files/zh-cn/web/css/@property/initial-value/index.html @@ -11,9 +11,9 @@
      {{CSSRef}}{{SeeCompatTable}}
      -

      initial-value CSS描述符在使用{{cssxref("@property")}} {{cssxref("at-rule")}}的时候是必需的,除非 syntax 属性接受了任何有效的 token 流。 它为属性设置初始值。

      +

      initial-value CSS描述符在使用{{cssxref("@property")}} {{cssxref("at-rule")}}的时候是必需的,除非 syntax 属性接受了任何有效的 token 流。它为属性设置初始值。

      -

      被选定为initial-value的参数,依照syntax描述符定义,必须可以正确地解析。 因此,如果syntax描述符为<color>,那么初始值必须是一个有效的{{cssxref("color")}}值。

      +

      被选定为initial-value的参数,依照syntax描述符定义,必须可以正确地解析。因此,如果syntax描述符为<color>,那么初始值必须是一个有效的{{cssxref("color")}}值。

      语法

      diff --git a/files/zh-cn/web/css/@property/syntax/index.html b/files/zh-cn/web/css/@property/syntax/index.html index 051d7b832d6f73..5cb580050be67d 100644 --- a/files/zh-cn/web/css/@property/syntax/index.html +++ b/files/zh-cn/web/css/@property/syntax/index.html @@ -27,7 +27,7 @@

      Syntax

      取值

      -

      规范定义的、受语法支持的字符串。支持的语法是CSS types的子集。 这些可以单独使用,一些类型也可以结合使用。

      +

      规范定义的、受语法支持的字符串。支持的语法是CSS types的子集。这些可以单独使用,一些类型也可以结合使用。

      "<length>"
      diff --git a/files/zh-cn/web/css/_colon_dir/index.html b/files/zh-cn/web/css/_colon_dir/index.html index 6ba81f0b948aaa..7ca8723c23a375 100644 --- a/files/zh-cn/web/css/_colon_dir/index.html +++ b/files/zh-cn/web/css/_colon_dir/index.html @@ -65,5 +65,5 @@
        -
      • 语言相关伪类: {{ cssxref(":lang") }}, {{ cssxref(":dir") }}
      • +
      • 语言相关伪类:{{ cssxref(":lang") }}, {{ cssxref(":dir") }}
      diff --git a/files/zh-cn/web/css/_colon_first-of-type/index.html b/files/zh-cn/web/css/_colon_first-of-type/index.html index 91ecf55bf623a0..a8f262ff8b1c79 100644 --- a/files/zh-cn/web/css/_colon_first-of-type/index.html +++ b/files/zh-cn/web/css/_colon_first-of-type/index.html @@ -19,7 +19,7 @@ }
      -

      注意:按原来定义,所选元素必须有一个父元素。 从 Selectors Level 4 开始,就不需要这样了。

      +

      注意:按原来定义,所选元素必须有一个父元素。从 Selectors Level 4 开始,就不需要这样了。

      语法

      diff --git a/files/zh-cn/web/css/_colon_first/index.html b/files/zh-cn/web/css/_colon_first/index.html index db7a96859fe372..f9b90663008ba1 100644 --- a/files/zh-cn/web/css/_colon_first/index.html +++ b/files/zh-cn/web/css/_colon_first/index.html @@ -9,7 +9,7 @@

      简介

      :first {{cssxref("@page")}} CSS 伪类选择器 描述的是:打印文档的时候,第一页的样式。

      -
      提示:你不能改变所有的 css 属性。你只能改变 margins、 orphans、 widows、文档什么时候换页。别的所有 css 样式都会被忽略。
      +
      提示:你不能改变所有的 css 属性。你只能改变 margins、orphans、widows、文档什么时候换页。别的所有 css 样式都会被忽略。

      语法

      @@ -43,7 +43,7 @@

      JavaScript

      结果

      -

      点击下面的 print 按钮来打印这个例子。第一页的文字会在中间显示, 其他页的内容在默认位置显示。

      +

      点击下面的 print 按钮来打印这个例子。第一页的文字会在中间显示,其他页的内容在默认位置显示。

      {{ EmbedLiveSample('Example', '80%', '150px') }}

      diff --git a/files/zh-cn/web/css/_colon_focus/index.html b/files/zh-cn/web/css/_colon_focus/index.html index b35aa2b79a747c..13f46b5af932c2 100644 --- a/files/zh-cn/web/css/_colon_focus/index.html +++ b/files/zh-cn/web/css/_colon_focus/index.html @@ -11,7 +11,7 @@ ---

      {{CSSRef}}

      -

      CSS伪类 :focus表示获得焦点的元素(如表单输入)。当用户点击或触摸元素或通过键盘的 “tab” 键选择它时会被触发。

      +

      CSS伪类 :focus表示获得焦点的元素(如表单输入)。当用户点击或触摸元素或通过键盘的“tab”键选择它时会被触发。

      /* Selects any <input> when focused */
       input:focus {
      diff --git a/files/zh-cn/web/css/_colon_hover/index.html b/files/zh-cn/web/css/_colon_hover/index.html
      index c8ce13baf26c96..5539ae511e5166 100644
      --- a/files/zh-cn/web/css/_colon_hover/index.html
      +++ b/files/zh-cn/web/css/_colon_hover/index.html
      @@ -16,7 +16,7 @@ 

      概要

      用户的可视客户端比如 Firefox, Internet Explorer, Safari, Opera or Chrome,会在光标(鼠标指针)悬停在元素上时提供关联的样式。

      -
      注意: 在触摸屏上 :hover 有问题,基本不可用。不同的浏览器上:hover 伪类表现不同。 可能从不会触发;或者在触摸某元素后触发了一小会儿;或者总是触发即使用户不在触摸了,直到用户触摸别的元素。 触摸屏非常普遍,所以网页开发人员不要让任何内容只能通过悬停才能展示出来,不然这些内容对于触摸屏使用者来说是很难或者说不可能看到。
      +
      注意: 在触摸屏上 :hover 有问题,基本不可用。不同的浏览器上:hover 伪类表现不同。可能从不会触发;或者在触摸某元素后触发了一小会儿;或者总是触发即使用户不在触摸了,直到用户触摸别的元素。 触摸屏非常普遍,所以网页开发人员不要让任何内容只能通过悬停才能展示出来,不然这些内容对于触摸屏使用者来说是很难或者说不可能看到。

      语法

      diff --git a/files/zh-cn/web/css/_colon_is/index.html b/files/zh-cn/web/css/_colon_is/index.html index 784d622371651c..a6b46f6ab13552 100644 --- a/files/zh-cn/web/css/_colon_is/index.html +++ b/files/zh-cn/web/css/_colon_is/index.html @@ -155,7 +155,7 @@

      简化列表选择器

      list-style-type: square; }
      -

      但是,不要像下面那么做: (参见 the section on performance 。)

      +

      但是,不要像下面那么做:(参见 the section on performance 。)

      :is(ol, ul, menu, dir) :is(ol, ul, menu, dir) :is(ul, menu, dir) {
         list-style-type: square;
      diff --git a/files/zh-cn/web/css/_colon_lang/index.html b/files/zh-cn/web/css/_colon_lang/index.html
      index b6a774cd9853b4..03e74694d32473 100644
      --- a/files/zh-cn/web/css/_colon_lang/index.html
      +++ b/files/zh-cn/web/css/_colon_lang/index.html
      @@ -93,7 +93,7 @@ 

      浏览器兼容性

      参考

        -
      • 语言相关伪类: {{ cssxref(":lang") }}, {{ cssxref(":dir") }}
      • +
      • 语言相关伪类:{{ cssxref(":lang") }}, {{ cssxref(":dir") }}
      • HTML {{htmlattrxref("lang")}} 属性
      • BCP 47 - Tags for Identifying Languages
      diff --git a/files/zh-cn/web/css/_colon_nth-last-child/index.html b/files/zh-cn/web/css/_colon_nth-last-child/index.html index f045002666d0c2..8d5f462e3c6389 100644 --- a/files/zh-cn/web/css/_colon_nth-last-child/index.html +++ b/files/zh-cn/web/css/_colon_nth-last-child/index.html @@ -29,9 +29,9 @@

      Keyword values

      odd
      -
      代表一些元素,它们在所在的兄弟节点中,从后往前计算的数字位置是奇数,比如: 1, 3, 5 等。
      +
      代表一些元素,它们在所在的兄弟节点中,从后往前计算的数字位置是奇数,比如:1, 3, 5 等。
      even
      -
      代表一些元素,它们在所在的兄弟节点中,从后往前计算的数字位置是偶数,比如: 2, 4, 6 等。
      +
      代表一些元素,它们在所在的兄弟节点中,从后往前计算的数字位置是偶数,比如:2, 4, 6 等。

      Functional notation

      diff --git a/files/zh-cn/web/css/_colon_placeholder-shown/index.html b/files/zh-cn/web/css/_colon_placeholder-shown/index.html index f0321a96ce2443..4cd3f64f3fe65a 100644 --- a/files/zh-cn/web/css/_colon_placeholder-shown/index.html +++ b/files/zh-cn/web/css/_colon_placeholder-shown/index.html @@ -41,7 +41,7 @@

      结果

      超出文本

      -

      在分辨率较小的设备上,输入框或者其他表单控件可能会变的很窄。这个选择器可以使得占位符文本缩短. 这个选择器经常和 {{cssxref("text-overflow")}} 一起使用。

      +

      在分辨率较小的设备上,输入框或者其他表单控件可能会变的很窄。这个选择器可以使得占位符文本缩短。这个选择器经常和 {{cssxref("text-overflow")}} 一起使用。

      HTML

      diff --git a/files/zh-cn/web/css/_colon_required/index.html b/files/zh-cn/web/css/_colon_required/index.html index f5d81d4e3af36c..f6995a199d3c94 100644 --- a/files/zh-cn/web/css/_colon_required/index.html +++ b/files/zh-cn/web/css/_colon_required/index.html @@ -7,7 +7,7 @@

      摘要

      -

      :required  CSS 伪类 表示任意设置了{{ htmlattrxref("required", "input") }}属性的{{ HTMLElement("input") }},{{HTMLElement("select")}}, 或 {{HTMLElement("textarea")}}元素。 这个伪类对于高亮显示在提交表单之前必须具有有效数据的字段非常有用。

      +

      :required  CSS 伪类 表示任意设置了{{ htmlattrxref("required", "input") }}属性的{{ HTMLElement("input") }},{{HTMLElement("select")}}, 或 {{HTMLElement("textarea")}}元素。这个伪类对于高亮显示在提交表单之前必须具有有效数据的字段非常有用。

      注意:{{ cssxref(":optional") }}伪类选中'可选的'表单字段。

      diff --git a/files/zh-cn/web/css/_colon_right/index.html b/files/zh-cn/web/css/_colon_right/index.html index 739b6073073c19..eaf96a39b1915d 100644 --- a/files/zh-cn/web/css/_colon_right/index.html +++ b/files/zh-cn/web/css/_colon_right/index.html @@ -10,7 +10,7 @@ margin: 2in 3in; }
      -

      这里的“左” 或 “右” 不是固定的,取决与文档的写作方向。如果第一页主要文字方向是从左到右的,那么它就是{{cssxref(":right")}}右页,反之它就是{{cssxref(":left")}}左页。

      +

      这里的“左”或“右”不是固定的,取决与文档的写作方向。如果第一页主要文字方向是从左到右的,那么它就是{{cssxref(":right")}}右页,反之它就是{{cssxref(":left")}}左页。

      Note: 可通过 bdo 标签  的 dir 属性改变文字方向。

      diff --git a/files/zh-cn/web/css/_colon_valid/index.html b/files/zh-cn/web/css/_colon_valid/index.html index 14eac092a6f01c..c7bb3b0d479a48 100644 --- a/files/zh-cn/web/css/_colon_valid/index.html +++ b/files/zh-cn/web/css/_colon_valid/index.html @@ -32,7 +32,7 @@

      例子

      Accessibility concerns

      -

      绿色常用于表示有效输入。但某些色盲的人将无法确定输入的状态(颜色),除非使用不依赖于颜色来传达意义的附加指示器。 通常,指示器使用描述性文本和(或)图标。

      +

      绿色常用于表示有效输入。但某些色盲的人将无法确定输入的状态(颜色),除非使用不依赖于颜色来传达意义的附加指示器。通常,指示器使用描述性文本和(或)图标。

      • MDN Understanding WCAG, Guideline 1.4 explanations
      • diff --git a/files/zh-cn/web/css/_colon_visited/index.html b/files/zh-cn/web/css/_colon_visited/index.html index c2bca1179be120..39a5aa93d5b29c 100644 --- a/files/zh-cn/web/css/_colon_visited/index.html +++ b/files/zh-cn/web/css/_colon_visited/index.html @@ -28,7 +28,7 @@

        限制

        • 允许使用的 CSS 属性为{{ cssxref("color") }}, {{ cssxref("background-color") }}, {{ cssxref("border-color") }}, {{ cssxref("border-bottom-color") }}, {{ cssxref("border-left-color") }}, {{ cssxref("border-right-color") }}, {{ cssxref("border-top-color") }}, {{ cssxref("column-rule-color") }}, 和{{ cssxref("outline-color") }}。
        • 允许使用的 SVG 属性为{{SVGAttr("fill")}} 和 {{SVGAttr("stroke")}}。
        • -
        • 允许使用的样式的 αlpha 分量 (透明度) 将被忽略。 设置在:visited中的样式将使用元素的非:visited 访问状态的 αlpha 分量, 如果该分量为 0,这个样式将被完全忽略。
        • +
        • 允许使用的样式的 αlpha 分量 (透明度) 将被忽略。设置在:visited中的样式将使用元素的非:visited 访问状态的 αlpha 分量,如果该分量为 0,这个样式将被完全忽略。
        • 虽然这些样式可以改变用户最终的颜色外观,但 {{domxref("window.getComputedStyle")}} 方法将存在并且始终返回非访问颜色的值。
        @@ -38,7 +38,7 @@

        限制

        示例

        -

        未设置颜色或透明的属性不能使用:visited。 在可以使用此伪类设置的属性中,浏览器可能只有colorcolumn-rule-color两个默认值。 因此,对于其他属性,在使用:visited选择器前,应该先为这些属性设置基础样式。 

        +

        未设置颜色或透明的属性不能使用:visited。在可以使用此伪类设置的属性中,浏览器可能只有colorcolumn-rule-color两个默认值。因此,对于其他属性,在使用:visited选择器前,应该先为这些属性设置基础样式。 

        HTML

        diff --git a/files/zh-cn/web/css/_colon_where/index.html b/files/zh-cn/web/css/_colon_where/index.html index 4303ddf5b1713a..e558b662ec4acd 100644 --- a/files/zh-cn/web/css/_colon_where/index.html +++ b/files/zh-cn/web/css/_colon_where/index.html @@ -13,7 +13,7 @@

        :where() CSS 伪类函数接受选择器列表作为它的参数,将会选择所有能被该选择器列表中任何一条规则选中的元素。

        -

        :where() 和 {{CSSxRef(":is", ":is()")}} 的不同之处在于,:where()优先级总是为 0 ,但是 :is() 的优先级是由它的选择器列表中优先级最高的选择器决定的。

        +

        :where() 和 {{CSSxRef(":is", ":is()")}} 的不同之处在于,:where()优先级总是为 0,但是 :is() 的优先级是由它的选择器列表中优先级最高的选择器决定的。

        语法

        diff --git a/files/zh-cn/web/css/_doublecolon_first-letter/index.html b/files/zh-cn/web/css/_doublecolon_first-letter/index.html index b59d3658736b77..110e8cb914378c 100644 --- a/files/zh-cn/web/css/_doublecolon_first-letter/index.html +++ b/files/zh-cn/web/css/_doublecolon_first-letter/index.html @@ -18,7 +18,7 @@
        • 首字符之前或紧跟首字符的标点符号在伪元素匹配范围内。标点符号(Punctuation)包括在开(Ps),闭(Pe),初始引用(Pi),结束引用(Pf)当中定义的任何 Unicode 字符以及其他种类的标点符号(Po)。
        • -
        • 另外还会有一些以大写双字母组合命名的语言,比如荷兰的 IJ  . 在这种罕见情况下,两个大写字母都理应被 ::first-letter 伪元素匹配到. (但是浏览器对此支持得很糟糕,可以用 browser compatibility table进行核实).
        • +
        • 另外还会有一些以大写双字母组合命名的语言,比如荷兰的 IJ  . 在这种罕见情况下,两个大写字母都理应被 ::first-letter 伪元素匹配到。(但是浏览器对此支持得很糟糕,可以用 browser compatibility table进行核实).
        • {{ cssxref("::before") }} 伪元素 和 {{ cssxref("content") }} 属性结合起来有可能会在元素前面注入一些文本。如此,::first-letter 将会匹配到 content 文本的首字母。
        @@ -35,8 +35,8 @@

        允许的属性值

        • 所有的字体属性 : {{ Cssxref("font") }}, {{ Cssxref("font-style") }}, {{cssxref("font-feature-settings")}}, {{cssxref("font-kerning")}}, {{cssxref("font-language-override")}}, {{cssxref("font-stretch")}}, {{cssxref("font-synthesis")}}, {{ Cssxref("font-variant") }}, {{cssxref("font-variant-alternates")}}, {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-east-asian")}}, {{cssxref("font-variant-ligatures")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-position")}}, {{ Cssxref("font-weight") }}, {{ Cssxref("font-size") }}, {{cssxref("font-size-adjust")}}, {{ Cssxref("line-height") }} 以及 {{ Cssxref("font-family") }}.
        • 所有的背景属性 : {{ Cssxref("background-color") }}, {{ Cssxref("background-image") }}, {{cssxref("background-clip")}}, {{cssxref("background-origin")}}, {{ Cssxref("background-position") }}, {{ Cssxref("background-repeat") }}, {{ cssxref("background-size") }}, {{ Cssxref("background-attachment") }}以及 {{cssxref("background-blend-mode")}}.
        • -
        • 所有的外边距属性: {{ Cssxref("margin") }}, {{ Cssxref("margin-top") }}, {{ Cssxref("margin-right") }}, {{ Cssxref("margin-bottom") }}, {{ Cssxref("margin-left") }}.
        • -
        • 所有的内边距属性: {{ Cssxref("padding") }}, {{ Cssxref("padding-top") }}, {{ Cssxref("padding-right") }}, {{ Cssxref("padding-bottom") }}, {{ Cssxref("padding-left") }}.
        • +
        • 所有的外边距属性:{{ Cssxref("margin") }}, {{ Cssxref("margin-top") }}, {{ Cssxref("margin-right") }}, {{ Cssxref("margin-bottom") }}, {{ Cssxref("margin-left") }}.
        • +
        • 所有的内边距属性:{{ Cssxref("padding") }}, {{ Cssxref("padding-top") }}, {{ Cssxref("padding-right") }}, {{ Cssxref("padding-bottom") }}, {{ Cssxref("padding-left") }}.
        • 所有的边框属性:比如一些简短的边框属性 {{ Cssxref("border") }}, {{ Cssxref("border-style") }}, {{ Cssxref("border-color") }}, {{ cssxref("border-width") }}, {{ cssxref("border-radius") }}, {{cssxref("border-image")}}, 还剩下许多冗长的边框属性等等。
        • {{ cssxref("color") }} 属性。
        • {{ cssxref("text-decoration") }}, {{cssxref("text-shadow")}}, {{ cssxref("text-transform") }}, {{ cssxref("letter-spacing") }}, {{ cssxref("word-spacing") }} (使用恰当的话), {{ cssxref("line-height") }}, {{cssxref("text-decoration-color")}}, {{cssxref("text-decoration-line")}}, {{cssxref("text-decoration-style")}}, {{cssxref("box-shadow")}}, {{ cssxref("float") }}, {{ cssxref("vertical-align") }} 注意此刻必须没有浮动) 等属性。
        • @@ -45,7 +45,7 @@

          允许的属性值

          当这个列表以后被实现时,  为了保持 css 不过时。建议你不要在声明块内使用任何其他属性。

          -

          对于 CSS 2,伪元素采用单冒号前缀语法。因为伪类也是同样的语法,所以使得两者难以区分. CSS2.1 改变了伪元素的前缀语法可以解决这个问题。现在伪元素采用双冒号前缀,并且伪类仍然采用单冒号前缀。

          +

          对于 CSS 2,伪元素采用单冒号前缀语法。因为伪类也是同样的语法,所以使得两者难以区分。CSS2.1 改变了伪元素的前缀语法可以解决这个问题。现在伪元素采用双冒号前缀,并且伪类仍然采用单冒号前缀。

          CSS2 伪类单冒号语法已得到广泛支持时,所有支持双冒号的浏览器同样也支持旧的单冒号语法。

          diff --git a/files/zh-cn/web/css/_doublecolon_slotted/index.html b/files/zh-cn/web/css/_doublecolon_slotted/index.html index 6d718470f95d1a..d518fa98f128ec 100644 --- a/files/zh-cn/web/css/_doublecolon_slotted/index.html +++ b/files/zh-cn/web/css/_doublecolon_slotted/index.html @@ -7,7 +7,7 @@

          :slotted() CSS 伪元素 用于选定那些被放在 HTML 模板中的元素 (更多请查看 使用模板和插槽)。

          -

          这个伪类选择器仅仅适用于 影子节点树 (Shadow Dom)。并且只会选择实际的元素节点, 而不包括文本节点。

          +

          这个伪类选择器仅仅适用于 影子节点树 (Shadow Dom)。并且只会选择实际的元素节点,而不包括文本节点。

          /* Selects any element placed inside a slot */
           ::slotted(*) {
          diff --git a/files/zh-cn/web/css/basic-shape/index.html b/files/zh-cn/web/css/basic-shape/index.html
          index 795e7b5bf789ea..b7d1a655d4b602 100644
          --- a/files/zh-cn/web/css/basic-shape/index.html
          +++ b/files/zh-cn/web/css/basic-shape/index.html
          @@ -66,7 +66,7 @@ 

          图形函数

          path( [<fill-rule>,]? <string>)
          -

          可选的 <fill-rule> 表示 filling rule 填充规则。可选 nonzero(非零环绕规则)和 evenodd(奇偶规则) 。 默认是(Default value when omitted)nonzero

          +

          可选的 <fill-rule> 表示 filling rule 填充规则。可选 nonzero(非零环绕规则)和 evenodd(奇偶规则) 。默认是(Default value when omitted)nonzero

          参数 <string> 是用引号包含的 SVG Path 字符串

          diff --git a/files/zh-cn/web/css/color_value/index.html b/files/zh-cn/web/css/color_value/index.html index 56bfd3af2d4f88..adca5b4e3291da 100644 --- a/files/zh-cn/web/css/color_value/index.html +++ b/files/zh-cn/web/css/color_value/index.html @@ -1005,7 +1005,7 @@
          结果

          RGB 颜色

          -

          颜色可以使用红 - 绿-蓝(red-green-blue (RGB))模式的两种方式被定义:

          +

          颜色可以使用红 - 绿 - 蓝(red-green-blue (RGB))模式的两种方式被定义:

          语法

          diff --git a/files/zh-cn/web/css/index.html b/files/zh-cn/web/css/index.html index 723670084fbb18..0dc736e06d6e9f 100644 --- a/files/zh-cn/web/css/index.html +++ b/files/zh-cn/web/css/index.html @@ -14,7 +14,7 @@

          层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTMLXML(包括如 SVGMathMLXHTML 之类的 XML 分支语言)文档的呈现。CSS 描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题。

          -

          CSS 是开放网络的核心语言之一,由 W3C 规范 实现跨浏览器的标准化。CSS节省了大量的工作。 样式可以通过定义保存在外部.css文件中,同时控制多个网页的布局,这意味着开发者不必经历在所有网页上编辑布局的麻烦。CSS 被分为不同等级:CSS1 现已废弃, CSS2.1 是推荐标准, CSS3 分成多个小模块且正在标准化中。

          +

          CSS 是开放网络的核心语言之一,由 W3C 规范 实现跨浏览器的标准化。CSS 节省了大量的工作。样式可以通过定义保存在外部.css 文件中,同时控制多个网页的布局,这意味着开发者不必经历在所有网页上编辑布局的麻烦。CSS 被分为不同等级:CSS1 现已废弃,CSS2.1 是推荐标准, CSS3 分成多个小模块且正在标准化中。

            @@ -38,18 +38,18 @@

            教程

            我们的 CSS 学习区 以多模块、零基础为特色进行 CSS 的教学 —— 这也就意味着你不需要任何知识基础。

            -
            学习CSS 第一步
            -
            CSS(层叠样式表)用于设置网页的样式及布局——比如,可以更改内容的字体、颜色、大小以及间距,或是将其分列,或是添加动画及赋予内容其它装饰性的特征。本模块将通过阐述基本原理,展示语法示例,以及如何与HTML相联系三方面,为你日后精通CSS提供一个友好的开端。
            -
            CSS构建
            -
            本模块是学习CSS 第一步的延续,相信你已经熟悉了这门语言及它的语法,并拥有一些使用它的基本经验,是时候更进一步了。本模块着眼于层叠和继承、所有可用的选择器类型、单位、大小、背景、边框、调试等等。
            +
            学习 CSS 第一步
            +
            CSS(层叠样式表)用于设置网页的样式及布局——比如,可以更改内容的字体、颜色、大小以及间距,或是将其分列,或是添加动画及赋予内容其它装饰性的特征。本模块将通过阐述基本原理,展示语法示例,以及如何与 HTML 相联系三方面,为你日后精通 CSS 提供一个友好的开端。
            +
            CSS 构建
            +
            本模块是学习 CSS 第一步的延续,相信你已经熟悉了这门语言及它的语法,并拥有一些使用它的基本经验,是时候更进一步了。本模块着眼于层叠和继承、所有可用的选择器类型、单位、大小、背景、边框、调试等等。

            - 其目的在于先为你提供编写功能强大的CSS工具包,了解所有基础理论。之后再进行进一步的学习,诸如样式化文本CSS布局
            + 其目的在于先为你提供编写功能强大的 CSS 工具包,了解所有基础理论。之后再进行进一步的学习,诸如样式化文本CSS 布局
            样式化文本
            -
            在学习了CSS语言基础知识的基础上,你需要关注的下一个重点是样式化文本——这是使用CSS时最常用的场景之一。在这一模块将学习文本样式设置的基础知识,包括设置字体、粗体、斜体、行、字符间距、阴影以及其他文本属性。我们通过在页面上应用自定义的字体以及样式化的列表、链接来完善本模块。
            +
            在学习了 CSS 语言基础知识的基础上,你需要关注的下一个重点是样式化文本——这是使用 CSS 时最常用的场景之一。在这一模块将学习文本样式设置的基础知识,包括设置字体、粗体、斜体、行、字符间距、阴影以及其他文本属性。我们通过在页面上应用自定义的字体以及样式化的列表、链接来完善本模块。
            CSS 布局
            到这里,我们已经了解了 CSS 基础:如何样式化文本,以及如何样式化和操作内置个人内容的盒模型。现在是时候研究“如何相对于可视区域将你的盒子彼此间放置于正确位置”了。我们到此已经覆盖了所有预备知识,因此现在能够深入学习 CSS 布局,研究不同的显示设置,包括浮动和定位在内的传统布局方法,以及像如弹性盒(flexbox)之类新近流行的布局工具。
            -
            解决常见的CSS相关问题
            -
            本模块提供了一些内容链接,这些内容很好的回答了在创建网页时使用CSS所遇到的常见问题。
            +
            解决常见的 CSS 相关问题
            +
            本模块提供了一些内容链接,这些内容很好的回答了在创建网页时使用 CSS 所遇到的常见问题。
          @@ -59,7 +59,7 @@

          参考

          • CSS 参考: 针对资深 Web 开发者的详细参考手册,其中描述了 CSS 的各个属性和概念。
          • -
          • CSS 关键概念: +
          • CSS 关键概念:
            • 语言语法和形式(The syntax and forms of the language
            • 特殊性(另译优先级)继承级联Specificity, inheritance and the Cascade
            • @@ -84,7 +84,7 @@

              CSS 开发工具

              diff --git a/files/zh-cn/web/css/integer/index.html b/files/zh-cn/web/css/integer/index.html index 7c377fd3a4207b..a02ac037d59c9f 100644 --- a/files/zh-cn/web/css/integer/index.html +++ b/files/zh-cn/web/css/integer/index.html @@ -16,7 +16,7 @@

              语法

              The <integer> data type consists of one or several decimal digits, 0 through 9 inclusive, optionally preceded by a single + or - sign. There is no unit associated with integers.
              - <integer>数据类型由一个或多个十进制数字组成,包括 0 到 9,可以选择前面加一个 + 或-号。没有与整数关联的单位。

              + <integer>数据类型由一个或多个十进制数字组成,包括 0 到 9,可以选择前面加一个 + 或 - 号。没有与整数关联的单位。

              Note: There is no official range of valid <integer> values. Opera 12.1 supports values up to 215-1, IE up to 220-1, and other browsers even higher. During the CSS3 Values cycle there was a lot of discussion about setting a minimum range to support: the latest decision, in April 2012 during the LC phase, was [-227-1; 227-1], but other values like 224-1 and 230-1 were also proposed. However, the latest spec doesn't specify a range anymore.
              注意:没有有效的<integer>值的正式范围。Opera12.1 支持高达 215-1 的值,IE 高达 220-1 的值,其他浏览器支持更高的值。在 CSS3 值周期中,有很多关于设置最小支持范围的讨论:2012 年 4 月在 LC 阶段的最新决定是 [-227-1; 227-1],,但也提出了 224-1 and 230等其他值。但是,最新的规范不再指定范围。
              diff --git a/files/zh-cn/web/css/text-overflow/index.md b/files/zh-cn/web/css/text-overflow/index.md index ff63d6be29fe9b..869250594de211 100644 --- a/files/zh-cn/web/css/text-overflow/index.md +++ b/files/zh-cn/web/css/text-overflow/index.md @@ -211,5 +211,5 @@ for (let para of paras) { ## 参见 -- 相关 CSS 属性: {{cssxref("overflow")}}、{{cssxref("white-space")}} -- 控制换行的 CSS 属性: {{cssxref("overflow-wrap")}}、{{cssxref("word-break")}} +- 相关 CSS 属性:{{cssxref("overflow")}}、{{cssxref("white-space")}} +- 控制换行的 CSS 属性:{{cssxref("overflow-wrap")}}、{{cssxref("word-break")}} diff --git a/files/zh-cn/web/css/tutorials/index.html b/files/zh-cn/web/css/tutorials/index.html index e8ec2247acc897..285e8e6cf8c6ab 100644 --- a/files/zh-cn/web/css/tutorials/index.html +++ b/files/zh-cn/web/css/tutorials/index.html @@ -55,7 +55,7 @@

              CSS 中级教程

              CSS Gradients
              - 渐变其实是图片,可以让一个颜色柔和的过渡到另一个颜色。CSS 中有很多渐变方式:线性渐变或者径向渐变等.这篇教程会讲解怎么使用渐变。
              + 渐变其实是图片,可以让一个颜色柔和的过渡到另一个颜色。CSS 中有很多渐变方式:线性渐变或者径向渐变等。这篇教程会讲解怎么使用渐变。

    CSS 高级教程

    CSS 也拥有一些特性来帮助你创建复杂的布局。虽然这特性可以使你用最简单的方式来达到布局效果,但对于那些没有太多经验的人来说,这些特性相当复杂。

    diff --git a/files/zh-cn/web/events/creating_and_triggering_events/index.html b/files/zh-cn/web/events/creating_and_triggering_events/index.html index 46405c9bcb8375..cd66969ea52f24 100644 --- a/files/zh-cn/web/events/creating_and_triggering_events/index.html +++ b/files/zh-cn/web/events/creating_and_triggering_events/index.html @@ -26,7 +26,7 @@

    创建自定义事件

    上述代码使用了 EventTarget.dispatchEvent() 方法。

    -

    绝大多数现代浏览器中都会支持这个构造函数(Internet Explorer 例外)。 要了解更为复杂的方法,可参考下面的 过时的方式  一节。

    +

    绝大多数现代浏览器中都会支持这个构造函数(Internet Explorer 例外)。要了解更为复杂的方法,可参考下面的 过时的方式  一节。

    添加自定义数据 – CustomEvent()

    diff --git a/files/zh-cn/web/events/detecting_device_orientation/index.html b/files/zh-cn/web/events/detecting_device_orientation/index.html index 7b69de49c37192..68b60ee1548b32 100644 --- a/files/zh-cn/web/events/detecting_device_orientation/index.html +++ b/files/zh-cn/web/events/detecting_device_orientation/index.html @@ -60,8 +60,8 @@

    相关值解释

    • {{ domxref("DeviceOrientationEvent.alpha") }} 表示设备沿 z 轴上的旋转角度,范围为 0~360。
    • -
    • {{ domxref("DeviceOrientationEvent.beta") }} 表示设备在 x 轴上的旋转角度,范围为-180~180。它描述的是设备由前向后旋转的情况。
    • -
    • {{ domxref("DeviceOrientationEvent.gamma") }} 表示设备在 y 轴上的旋转角度,范围为-90~90。它描述的是设备由左向右旋转的情况。
    • +
    • {{ domxref("DeviceOrientationEvent.beta") }} 表示设备在 x 轴上的旋转角度,范围为 -180~180。它描述的是设备由前向后旋转的情况。
    • +
    • {{ domxref("DeviceOrientationEvent.gamma") }} 表示设备在 y 轴上的旋转角度,范围为 -90~90。它描述的是设备由左向右旋转的情况。

    例子

    diff --git a/files/zh-cn/web/events/index.html b/files/zh-cn/web/events/index.html index 01998a9a21469b..7ffdf1d921a20f 100644 --- a/files/zh-cn/web/events/index.html +++ b/files/zh-cn/web/events/index.html @@ -844,7 +844,7 @@

    指针事件

    标准事件

    -

    这些事件在官方 Web 规范中定义,并且应在各个浏览器中通用。 每个事件都和代表事件接收方的对象(由此您可以查到每个事件提供的数据),定义这个事件的标准或标准链接会一起列出。

    +

    这些事件在官方 Web 规范中定义,并且应在各个浏览器中通用。每个事件都和代表事件接收方的对象(由此您可以查到每个事件提供的数据),定义这个事件的标准或标准链接会一起列出。

    diff --git a/files/zh-cn/web/events/orientation_and_motion_data_explained/index.html b/files/zh-cn/web/events/orientation_and_motion_data_explained/index.html index 606d0c14540219..16fbe8d1dbb52e 100644 --- a/files/zh-cn/web/events/orientation_and_motion_data_explained/index.html +++ b/files/zh-cn/web/events/orientation_and_motion_data_explained/index.html @@ -14,7 +14,7 @@

    总言

    当我们要使用 orientation 和 motion 事件时,理解浏览器给我们的相关值是什么意思就显的相当重要了。这篇文章会详细介绍在用的坐标系统并会教你如何全用它们。

    -

    警告: 目前,Firefox 和 Chrome 处理坐标的方式不同。 在使用它们的时候要多加注意。

    +

    警告: 目前,Firefox 和 Chrome 处理坐标的方式不同。在使用它们的时候要多加注意。

    坐标系

    坐标系是一种描述物体位置的系统,它包含三个轴 (X,Y,Z),三个轴共同描述了物体相对于参照物的位置信息。当我们使用 orientation 和 motion 事件时会接触到两种坐标系统。

    @@ -44,8 +44,8 @@

    Alpha<

    Beta

    围绕 x 轴旋转,也就是前后旋转,将使 beta 值发生改变:

    beta.png

    -

    当 beta 为 0° 时表示设备顶部和底部与地表面的距离是一样的,当设备向前翻转时,beta 递增到 180°,向后翻转递减到-180°。

    +

    当 beta 为 0° 时表示设备顶部和底部与地表面的距离是一样的,当设备向前翻转时,beta 递增到 180°,向后翻转递减到 -180°。

    Gamma

    当围绕 y 轴旋转,也就是左右倾斜设备时,将使 gamma 值发生改变:

    gamma.png

    -

    gamma 等于 0°表示设备左右两边与地表面的距离相等,当设备向右翻转时,gamma 递增到 90° ,向左翻转时,递减到-90°。

    +

    gamma 等于 0°表示设备左右两边与地表面的距离相等,当设备向右翻转时,gamma 递增到 90° ,向左翻转时,递减到 -90°。

    diff --git a/files/zh-cn/web/guide/ajax/getting_started/index.html b/files/zh-cn/web/guide/ajax/getting_started/index.html index 3cfecde895af33..2df4658b3a3d29 100644 --- a/files/zh-cn/web/guide/ajax/getting_started/index.html +++ b/files/zh-cn/web/guide/ajax/getting_started/index.html @@ -20,7 +20,7 @@

    什么是 AJAX?

    Step 1 – 怎样发送 http 请求

    -

    为了使用 JavaScript 向服务器发送一个 http 请求,你需要一个包含必要函数功能的对象实例。这就是为什么会有 XMLHttpRequest 的原因。 这是 IE 浏览器的 ActiveX 对象 XMLHTTP的前身。 随后 Mozilla,Safari 和其他浏览器也都实现了类似的方法,被称为 XMLHttpRequest 。同时,微软也实现了 XMLHttpRequest 方法。

    +

    为了使用 JavaScript 向服务器发送一个 http 请求,你需要一个包含必要函数功能的对象实例。这就是为什么会有 XMLHttpRequest 的原因。这是 IE 浏览器的 ActiveX 对象 XMLHTTP的前身。 随后 Mozilla,Safari 和其他浏览器也都实现了类似的方法,被称为 XMLHttpRequest 。同时,微软也实现了 XMLHttpRequest 方法。

    // Old compatibility code, no longer needed.
     if (window.XMLHttpRequest) { // Mozilla, Safari, IE7+ ...
    @@ -36,7 +36,7 @@ 

    Step 1 – 怎样发送 http 请求httpRequest.onreadystatechange = nameOfTheFunction;

    -

    要注意的是,函数名后没有参数,因为你把一个引用赋值给了函数,而不是真正的调用了它。 此外,如果不使用函数名的方式,你还可以用 JavaScript 的匿名函数响应处理的动作,就像下面这样:

    +

    要注意的是,函数名后没有参数,因为你把一个引用赋值给了函数,而不是真正的调用了它。此外,如果不使用函数名的方式,你还可以用 JavaScript 的匿名函数响应处理的动作,就像下面这样:

    httpRequest.onreadystatechange = function(){
         // Process the server response here.
    @@ -50,8 +50,8 @@ 

    Step 1 – 怎样发送 http 请求
      -
    • open() 的第一个参数是 HTTP 请求方法 - 有 GET,POST,HEAD 以及服务器支持的其他方法。 保证这些方法一定要是大写字母,否则其他一些浏览器(比如 FireFox)可能无法处理这个请求。更多关于 HTTP 的请求方法,可以查看 W3C specs
    • -
    • 第二个参数是你要发送的 URL。由于安全原因,默认不能调用第三方 URL 域名。 确保你在页面中使用的是正确的域名,否则在调用 open() 方法是会有 "permission denied" 错误提示。一个容易犯的错误是你企图通过 domain.tld 访问网站, 而不是使用 www.domain.tld。如果你真的需要向另一个域名发送请求,可以查看 HTTP access control
    • +
    • open() 的第一个参数是 HTTP 请求方法 - 有 GET,POST,HEAD 以及服务器支持的其他方法。保证这些方法一定要是大写字母,否则其他一些浏览器(比如 FireFox)可能无法处理这个请求。更多关于 HTTP 的请求方法,可以查看 W3C specs
    • +
    • 第二个参数是你要发送的 URL。由于安全原因,默认不能调用第三方 URL 域名。确保你在页面中使用的是正确的域名,否则在调用 open() 方法是会有 "permission denied" 错误提示。一个容易犯的错误是你企图通过 domain.tld 访问网站, 而不是使用 www.domain.tld。如果你真的需要向另一个域名发送请求,可以查看 HTTP access control
    • 第三个参数是可选的,用于设置请求是否是异步的。如果设为 true (默认值),即开启异步,JavaScript 就不会在此语句阻塞,使得用户能在服务器还没有响应的情况下与页面进行交互。
    @@ -94,7 +94,7 @@

    Step 2 – 处理服务器响应

    (Source)

    -

    接下来,点击 HTTP 响应的 response code。 可能的响应码都已经列在 W3C这个列表里。在下面的例子中,我们通过检查响应码 200 OK 判断 AJAX 有没有成功。

    +

    接下来,点击 HTTP 响应的 response code。可能的响应码都已经列在 W3C这个列表里。在下面的例子中,我们通过检查响应码 200 OK 判断 AJAX 有没有成功。

    if (httpRequest.status === 200) {
         // Perfect!
    @@ -152,13 +152,13 @@ 

    Step 3 – 一个简单的例子

    在这个例子中:

      -
    • 用户点击 “Make a request” 按钮;
    • +
    • 用户点击“Make a request”按钮;
    • 事件处理调用 makeRequest() 函数;
    • 请求已通过然后(onreadystatechange)传给 alertContents() 执行。
    • alertContents() 检查返回的响应是否 OK,然后 alert() test.html 文件内容。
    -
    Note: 如果你向一个代码片段发送请求,将返回 XML,而不是静态 XML 文件,在 IE 浏览器上则必须要设置响应头才能正常工作。如果不设置响应头为 Content-Type:application/xml ,IE 浏览器会在你访问 XML 元素时抛出 “Object Expected” 错误。
    +
    Note: 如果你向一个代码片段发送请求,将返回 XML,而不是静态 XML 文件,在 IE 浏览器上则必须要设置响应头才能正常工作。如果不设置响应头为 Content-Type:application/xml ,IE 浏览器会在你访问 XML 元素时抛出“Object Expected”错误。
    Note 2: 如果不设置响应头 Cache-Control: no-cache 浏览器将会把响应缓存下来而且再也无法重新提交请求。你也可以添加一个总是不同的 GET 参数,比如时间戳或者随机数 (详情见 bypassing the cache)
    @@ -245,7 +245,7 @@

    Step 5 – 处理数据

    }
    -

    如果这就是服务器返回的全部内容,alertContents() 函数可以使用 step 3 中的相同函数写。可是,服务器会返回计算后的内容和原内容。所以,如果用户输入 “Jane” 在输入框中,那服务器就会返回如下内容:

    +

    如果这就是服务器返回的全部内容,alertContents() 函数可以使用 step 3 中的相同函数写。可是,服务器会返回计算后的内容和原内容。所以,如果用户输入“Jane”在输入框中,那服务器就会返回如下内容:

    {"userData":"Jane","computedString":"Hi, Jane!"}

    diff --git a/files/zh-cn/web/guide/ajax/index.html b/files/zh-cn/web/guide/ajax/index.html index ae520a7f07bbfd..d3087cbc724c0e 100644 --- a/files/zh-cn/web/guide/ajax/index.html +++ b/files/zh-cn/web/guide/ajax/index.html @@ -7,7 +7,7 @@  Ajax 简介
    -

    Asynchronous JavaScript + XML(异步 JavaScript 和 XML), 其本身不是一种新技术,而是一个在 2005 年被 Jesse James Garrett 提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括:HTML 或 XHTML,  CSS, JavaScript, DOM, XML, XSLT, 以及最重要的 {{domxref("XMLHttpRequest")}}。当使用结合了这些技术的 AJAX 模型以后, 网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。

    +

    Asynchronous JavaScript + XML(异步 JavaScript 和 XML), 其本身不是一种新技术,而是一个在 2005 年被 Jesse James Garrett 提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括:HTML 或 XHTML,  CSS, JavaScript, DOM, XML, XSLT, 以及最重要的 {{domxref("XMLHttpRequest")}}。当使用结合了这些技术的 AJAX 模型以后,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。

    尽管 X 在 Ajax 中代表 XML,但由于{{glossary("JSON")}}的许多优势,比如更加轻量以及作为 Javascript 的一部分,目前 JSON 的使用比 XML 更加普遍。JSON 和 XML 都被用于在 Ajax 模型中打包信息。

    @@ -40,7 +40,7 @@

    文档

    XML
    The Extensible Markup Language (XML) 可扩展标记语言是 W3C 推荐的一种专用于创建专用标记语言的通用标记语言 。它是 SGML 的简化子集,能够描述许多不同类型的数据。其主要目的是促进在不同的系统,尤其是通过互联网连接的系统间的数据共享。
    解析和序列化 XML
    -
    如何从字符串,文件或者 Javascript 中解析 XML 文档,以及如何将 XML 文档序列转化为字符串,Javascript 对象树 (JSON) 或者文件 。
    +
    如何从字符串,文件或者 Javascript 中解析 XML 文档,以及如何将 XML 文档序列转化为字符串,Javascript 对象树 (JSON) 或者文件。
    XPath
    XPath 代表XML Path Language,它使用非 XML 语法,提供了一种灵活的方式来寻址(指向)XML 文档的不同部分。除此之外,它还可以用于测试文档中的寻址节点,以确定他们是否匹配模式。
    {{domxref("FileReader")}} API
    diff --git a/files/zh-cn/web/guide/audio_and_video_delivery/buffering_seeking_time_ranges/index.html b/files/zh-cn/web/guide/audio_and_video_delivery/buffering_seeking_time_ranges/index.html index 41183c1e731366..0468ca0178108f 100644 --- a/files/zh-cn/web/guide/audio_and_video_delivery/buffering_seeking_time_ranges/index.html +++ b/files/zh-cn/web/guide/audio_and_video_delivery/buffering_seeking_time_ranges/index.html @@ -92,7 +92,7 @@

    TimeRanges 对象

    }); }
    -

    这在长一些的 audio 或 video 上工作的更好, 但是按开始键并在进度条上点击,你会得到这个。 每个红色填充的长方形代表一个时间范围。

    +

    这在长一些的 audio 或 video 上工作的更好,但是按开始键并在进度条上点击,你会得到这个。 每个红色填充的长方形代表一个时间范围。

    A simple audio player with play button, seek bar and volume control, with a series of red rectangles beneath it representing time ranges.

    diff --git a/files/zh-cn/web/guide/audio_and_video_delivery/index.html b/files/zh-cn/web/guide/audio_and_video_delivery/index.html index 0a05e9f059af4f..84a92d91abb0de 100644 --- a/files/zh-cn/web/guide/audio_and_video_delivery/index.html +++ b/files/zh-cn/web/guide/audio_and_video_delivery/index.html @@ -11,7 +11,7 @@ translation_of: Web/Guide/Audio_and_video_delivery ---
    -

    我们可以通过多种方式在网络上交付音频和视频,从“静态”媒体文件到自适应实时流。 本文旨在作为探讨基于 Web 的媒体的各种传递机制以及与流行浏览器的兼容性的起点。

    +

    我们可以通过多种方式在网络上交付音频和视频,从“静态”媒体文件到自适应实时流。本文旨在作为探讨基于 Web 的媒体的各种传递机制以及与流行浏览器的兼容性的起点。

    音频和视频元素

    @@ -68,10 +68,10 @@

    HTML 视频

    <a href="videofile.mp4">download video</a> </video> -

    上面的代码创建了一个尺寸为 640x480 像素的视频播放器,显示海报图像,直到播放视频为止。 我们指示视频自动播放,但默认情况下将其静音。

    +

    上面的代码创建了一个尺寸为 640x480 像素的视频播放器,显示海报图像,直到播放视频为止。我们指示视频自动播放,但默认情况下将其静音。

    -

    注意:某些移动浏览器可能会忽略自动播放属性。 同样,自动播放功能在滥用时也会引起争议。 强烈建议您阅读媒体和 Web 音频 API 的自动播放指南,以了解如何明智地使用自动播放。

    +

    注意:某些移动浏览器可能会忽略自动播放属性。同样,自动播放功能在滥用时也会引起争议。强烈建议您阅读媒体和 Web 音频 API 的自动播放指南,以了解如何明智地使用自动播放。

    For further info see <video> element and Creating a cross-browser video player.

    diff --git a/files/zh-cn/web/guide/audio_and_video_delivery/webaudio_playbackrate_explained/index.html b/files/zh-cn/web/guide/audio_and_video_delivery/webaudio_playbackrate_explained/index.html index 49f4178a401920..d6fa4ed283eed9 100644 --- a/files/zh-cn/web/guide/audio_and_video_delivery/webaudio_playbackrate_explained/index.html +++ b/files/zh-cn/web/guide/audio_and_video_delivery/webaudio_playbackrate_explained/index.html @@ -46,7 +46,7 @@

    一个完整示例

    }; -

    最后,我们监听指向 html 元素“input”的 input 事件,这允许我们对被改变的播放速率控制产生影响 。

    +

    最后,我们监听指向 html 元素“input”的 input 事件,这允许我们对被改变的播放速率控制产生影响。

    注意: 在线试用示例, 尝试调整播放速率控制看看效果。

    diff --git a/files/zh-cn/web/guide/graphics/index.html b/files/zh-cn/web/guide/graphics/index.html index e3b19e58a3c13b..8dd3a5029954ee 100644 --- a/files/zh-cn/web/guide/graphics/index.html +++ b/files/zh-cn/web/guide/graphics/index.html @@ -12,7 +12,7 @@ - 图形 translation_of: Web/Guide/Graphics --- -

    现代网站和应用需要呈现大量图片。 展示静态签 {{HTMLElement("img")}},也可以采用 CSS 样式中的 {{cssxref("background-image")}} 属性。与此同时,你也能绘制出动态图像,或者是对图像进行巧妙处理。 这些文章可以帮助你了解如何做到这些事情。

    +

    现代网站和应用需要呈现大量图片。展示静态签 {{HTMLElement("img")}},也可以采用 CSS 样式中的 {{cssxref("background-image")}} 属性。与此同时,你也能绘制出动态图像,或者是对图像进行巧妙处理。这些文章可以帮助你了解如何做到这些事情。

    diff --git a/files/zh-cn/web/guide/html/content_categories/index.html b/files/zh-cn/web/guide/html/content_categories/index.html index d740864c364afb..e1c2066953ede8 100644 --- a/files/zh-cn/web/guide/html/content_categories/index.html +++ b/files/zh-cn/web/guide/html/content_categories/index.html @@ -127,7 +127,7 @@

    表单相关内容(Fo
    可标签的元素(labelable)
    和 {{HTMLElement("label")}} 相关联的元素。包括 {{HTMLElement("button")}},{{HTMLElement("input")}}, {{deprecated_inline()}}{{HTMLElement("keygen")}},{{HTMLElement("meter")}},{{HTMLElement("output")}},{{HTMLElement("progress")}},{{HTMLElement("select")}} 和 {{HTMLElement("textarea")}}。
    可提交的元素(submittable)
    -
    包括当表单提交时可以用来组成表单数据的元素。 包括 {{HTMLElement("button")}},{{HTMLElement("input")}}, {{deprecated_inline()}}{{HTMLElement("keygen")}},{{HTMLElement("object")}},{{HTMLElement("select")}} 和 {{HTMLElement("textarea")}}.
    +
    包括当表单提交时可以用来组成表单数据的元素。包括 {{HTMLElement("button")}},{{HTMLElement("input")}}, {{deprecated_inline()}}{{HTMLElement("keygen")}},{{HTMLElement("object")}},{{HTMLElement("select")}} 和 {{HTMLElement("textarea")}}.
    可重置的元素(resettable)
    当表单重置时会被重置的元素。包括 {{HTMLElement("input")}}, {{deprecated_inline()}}{{HTMLElement("keygen")}},{{HTMLElement("output")}},{{HTMLElement("select")}} 和 {{HTMLElement("textarea")}}.
    @@ -145,7 +145,7 @@

    支持脚本元素

    透明内容模型(Transparent content model)

    -

    如果一个元素拥有 transparent content mode, 即使将透明内容更换为子元素,其内容必须由合法的 HTML5 元素组成。

    +

    如果一个元素拥有 transparent content mode,即使将透明内容更换为子元素,其内容必须由合法的 HTML5 元素组成。

    例如,{{HTMLElement("del")}} 和 {{HTMLELement("ins")}} 是透明的:

    diff --git a/files/zh-cn/web/guide/html/editable_content/index.html b/files/zh-cn/web/guide/html/editable_content/index.html index 055027d0bbb9e2..2bee95bef56616 100644 --- a/files/zh-cn/web/guide/html/editable_content/index.html +++ b/files/zh-cn/web/guide/html/editable_content/index.html @@ -26,7 +26,7 @@

    执行命令设置可编辑区域

    在标记生成上的不同点

    -

    因为各个浏览器在标记生成上的不同,因此跨浏览器使用 contenteditable 一直以来都是痛点,例如一些看起来十分简单的事情,如: 当你按下 Enter/Return 键在可编辑区域中创建一个新的文本行时,不同主流浏览器对此有不同处理 (Firefox 插入{{htmlelement("br")}}、IE/Opera 将使用{{htmlelement("p")}}、 Chrome/Safari 将使用 {{htmlelement("div")}})

    +

    因为各个浏览器在标记生成上的不同,因此跨浏览器使用 contenteditable 一直以来都是痛点,例如一些看起来十分简单的事情,如:当你按下 Enter/Return 键在可编辑区域中创建一个新的文本行时,不同主流浏览器对此有不同处理 (Firefox 插入{{htmlelement("br")}}、IE/Opera 将使用{{htmlelement("p")}}、 Chrome/Safari 将使用 {{htmlelement("div")}})

    幸运的是在现代浏览器中,这些不同都趋于一致了。截止到Firefox 60,火狐开始使用{{htmlelement("div")}}元素来包裹新生成的文本行,以与 Chrome, modern Opera, Edge, and Safari.的行为趋于一致

    diff --git a/files/zh-cn/web/guide/index.html b/files/zh-cn/web/guide/index.html index faddde220c34e0..20a99b61be8990 100644 --- a/files/zh-cn/web/guide/index.html +++ b/files/zh-cn/web/guide/index.html @@ -18,7 +18,7 @@
    Event 开发者指南
    事件(Event)指一种用于网页生命周期中发生的各种事件的异步处理的设计模式,也指大量不同种类事件的命名、特性与使用。
    AJAX
    -
    AJAX 是一组技术的统称术语,它们允许 Web 应用程序对用户界面进行快速,增量式的更新,而无需重新加载整个页面。 这使得 Web 应用程序运行更快,更能响应用户的操作。
    +
    AJAX 是一组技术的统称术语,它们允许 Web 应用程序对用户界面进行快速,增量式的更新,而无需重新加载整个页面。这使得 Web 应用程序运行更快,更能响应用户的操作。
    Web 图形开发
    现代网络站点和应用通常需要展示图片。
    Web APIs
    diff --git a/files/zh-cn/web/guide/mobile/index.html b/files/zh-cn/web/guide/mobile/index.html index f067c8395edcd9..daa001fb51a166 100644 --- a/files/zh-cn/web/guide/mobile/index.html +++ b/files/zh-cn/web/guide/mobile/index.html @@ -36,7 +36,7 @@

    优化图片

    移动 APIs

    -

    最后,你可以利用移动设备提供的新可能性, 例如 orientationgeolocation

    +

    最后,你可以利用移动设备提供的新可能性,例如 orientationgeolocation

    跨浏览器开发

    diff --git a/files/zh-cn/web/html/attributes/autocomplete/index.html b/files/zh-cn/web/html/attributes/autocomplete/index.html index 3a3fb1fb4fd5ae..23153fd74366b7 100644 --- a/files/zh-cn/web/html/attributes/autocomplete/index.html +++ b/files/zh-cn/web/html/attributes/autocomplete/index.html @@ -16,9 +16,9 @@ ---
    {{HTMLSidebar("Global_attributes")}}
    -

    HTML autocomplete 属性可用于以文本或数字值作为输入的 {{HTMLElement("input")}} 元素 , {{HTMLElement("textarea")}} 元素,{{HTMLElement("select")}} 元素,和{{HTMLElement("form")}} 元素。 autocomplete 允许 web 开发人员指定,如果有任何权限 {{Glossary("user agent")}} 必须提供填写表单字段值的自动帮助,并为浏览器提供关于字段中所期望的信息类型的指导。

    +

    HTML autocomplete 属性可用于以文本或数字值作为输入的 {{HTMLElement("input")}} 元素, {{HTMLElement("textarea")}} 元素,{{HTMLElement("select")}} 元素,和{{HTMLElement("form")}} 元素。 autocomplete 允许 web 开发人员指定,如果有任何权限 {{Glossary("user agent")}} 必须提供填写表单字段值的自动帮助,并为浏览器提供关于字段中所期望的信息类型的指导。

    -

    建议值的来源通常取决于浏览器。 通常,值来自用户输入的过去值,但它们也可能来自预先配置的值。 例如,浏览器可能允许用户保存其姓名,地址,电话号码和电子邮件地址,以实现自动完成目的。 也许浏览器提供了保存加密的信用卡信息的功能,以便在身份验证过程后自动完成。

    +

    建议值的来源通常取决于浏览器。通常,值来自用户输入的过去值,但它们也可能来自预先配置的值。例如,浏览器可能允许用户保存其姓名,地址,电话号码和电子邮件地址,以实现自动完成目的。也许浏览器提供了保存加密的信用卡信息的功能,以便在身份验证过程后自动完成。

    如果 {{HTMLElement("input")}}, {{HTMLElement("select")}} 或{{HTMLElement("textarea")}} 元素 没有 autocomplete 属性,t 则该浏览器将使用该元素的表单的 autocomplete 属性所有者,它们可是元素的后代 {{HTMLElement("form")}} 元素 也可以是其  id  由元素{{htmlattrxref("form", "input")}} 属性指定的  <form>

    @@ -38,16 +38,16 @@

    价值

    "off"
    -
    浏览器不允许为此字段自动输入或选择一个值。 文档或应用程序可能提供其自己的自动完成功能,或者出于安全方面的考虑,要求不要自动输入该字段的值。 -
    注意: 在大多数现代浏览器中, autocomplete 设置为 "off" 不会阻止密码管理器询问用户是否要保存用户名和密码信息,或者自动在网站的登录表单中填写这些值。 请参阅 the autocomplete attribute and login fields.
    +
    浏览器不允许为此字段自动输入或选择一个值。文档或应用程序可能提供其自己的自动完成功能,或者出于安全方面的考虑,要求不要自动输入该字段的值。 +
    注意: 在大多数现代浏览器中, autocomplete 设置为 "off" 不会阻止密码管理器询问用户是否要保存用户名和密码信息,或者自动在网站的登录表单中填写这些值。请参阅 the autocomplete attribute and login fields.
    "on"
    -
    允许浏览器自动完成输入。 没有提供有关该字段中期望的数据类型的指导,因此浏览器可以使用自己的判断。
    +
    允许浏览器自动完成输入。没有提供有关该字段中期望的数据类型的指导,因此浏览器可以使用自己的判断。
    "name"
    -
    该字段期望该值是一个人的全名。 通常首选使用“名称”而不是将名称分解为各个组成部分,因为这样可以避免处理各种各样的人类名称及其结构。 但是,如果需要将名称分解为各个组成部分,则可以使用以下自动完成值: +
    该字段期望该值是一个人的全名。通常首选使用“名称”而不是将名称分解为各个组成部分,因为这样可以避免处理各种各样的人类名称及其结构。但是,如果需要将名称分解为各个组成部分,则可以使用以下自动完成值:
    "honorific-prefix"
    -
    前缀或标题,例如“ Mrs.”,“ Mr.”,“ Miss”,“ Ms.”,“ Dr.”或“ Mlle.”。
    +
    前缀或标题,例如“Mrs.”,“Mr.”,“Miss”,“Ms.”,“Dr.”或“Mlle.”。
    "given-name"
    给定的(或“名字”)名称。
    "additional-name"
    @@ -65,7 +65,7 @@

    价值

    "username"
    用户名或帐户名。
    "new-password"
    -
    新密码。 创建新帐户或更改密码时,应将其用于“输入新密码”或“确认新密码”字段,而不是通常出现的“输入当前密码”字段。 浏览器可以使用它来避免意外填写现有密码,并在创建安全密码时提供帮助(另请参见 Preventing autofilling with autocomplete="new-password").
    +
    新密码。创建新帐户或更改密码时,应将其用于“输入新密码”或“确认新密码”字段,而不是通常出现的“输入当前密码”字段。浏览器可以使用它来避免意外填写现有密码,并在创建安全密码时提供帮助(另请参见 Preventing autofilling with autocomplete="new-password").
    "current-password"
    用户的当前密码
    "one-time-code"
    @@ -73,19 +73,19 @@

    价值

    "organization-title"
    职务或组织内某人的职务,例如“高级技术作家”,“总裁”或“助理部队负责人”。
    "organization"
    -
    公司或组织名称,例如“ Acme Widget Company”或“ American Girl Scouts of America”。
    +
    公司或组织名称,例如“Acme Widget Company”或“American Girl Scouts of America”。
    "street-address"
    -
    街道地址。 它可以是多行文本,应在第二个行政级别(通常是城市或城镇)内完全标识地址的位置,但不应包括城市名称,邮政编码或邮政编码或国家/地区名称。
    +
    街道地址。它可以是多行文本,应在第二个行政级别(通常是城市或城镇)内完全标识地址的位置,但不应包括城市名称,邮政编码或邮政编码或国家/地区名称。
    "address-line1", "address-line2", "address-line3"
    -
    街道地址的每一行。 仅在还存在 "street-address" 的情况下,才应提供这些内容。.
    +
    街道地址的每一行。仅在还存在 "street-address" 的情况下,才应提供这些内容。.
    "address-level4"
    在具有四个级别的地址中,粒度最细的地址的行政级别
    "address-level3"
    第三个地址的行政级别,在具有至少三个管理级别的地址中。
    "address-level2"
    -
    第二个地址的行政级别,在地址中至少有两个。 在具有两个行政级别的国家/地区中,通常是地址所在的城市,城镇,村庄或其他地区。
    +
    第二个地址的行政级别,在地址中至少有两个。在具有两个行政级别的国家/地区中,通常是地址所在的城市,城镇,村庄或其他地区。
    "address-level1"
    -
    地址中的第一个地址的行政级别 。通常是地址所在的省份。 在美国,这就是州。 在瑞士,行政区。 在英国,小镇。
    +
    地址中的第一个地址的行政级别 。通常是地址所在的省份。在美国,这就是州。在瑞士,行政区。在英国,小镇。
    “国家”
    "country"
    国家代码。
    @@ -94,7 +94,7 @@

    价值

    "postal-code"
    邮政编码(在美国,这是邮政编码)。
    "cc-name"
    -
    打印在付款工具(例如信用卡)上或与之关联的全名。 通常,使用全名字段比将名称分成多个部分更可取。
    +
    打印在付款工具(例如信用卡)上或与之关联的全名。通常,使用全名字段比将名称分成多个部分更可取。
    "cc-given-name"
    在信用卡之类的付款工具上给出的给定(名字)名称。
    "cc-additional-name"
    @@ -104,15 +104,15 @@

    价值

    "cc-number"
    信用卡号码或其他标识付款方式的号码,例如帐号。
    "cc-exp"
    -
    付款方式的到期日期,通常为“ 月份 / 年份”或“ 月份 / 年份”形式。
    +
    付款方式的到期日期,通常为“月份 / 年份”或“月份 / 年份”形式。
    "cc-exp-month"
    付款方式到期的月份。
    "cc-exp-year"
    付款方式到期的年份。.
    "cc-csc"
    -
    付款工具的安全码; 在信用卡上,这是信用卡背面的 3 位数验证码。
    +
    付款工具的安全码;在信用卡上,这是信用卡背面的 3 位数验证码。
    "cc-type"
    -
    付款方式的类型(例如“ Visa”或“ Master Card”)。
    +
    付款方式的类型(例如“Visa”或“Master Card”)。
    "transaction-currency"
    进行交易的货币。
    "transaction-amount"
    @@ -131,23 +131,23 @@

    价值

    性别身份(例如“女性”,“法法芬”,“男性”),不带换行符的自由格式文本。
    "tel"
    -

    完整的电话号码,包括国家/地区代码。 如果您需要将电话号码分为几个部分,则可以将以下值用于这些字段:

    +

    完整的电话号码,包括国家/地区代码。如果您需要将电话号码分为几个部分,则可以将以下值用于这些字段:

    "tel-country-code"
    -
    国家/地区代码,例如美国,加拿大和北美其他地区以及加勒比海部分地区的“ 1”。
    +
    国家/地区代码,例如美国,加拿大和北美其他地区以及加勒比海部分地区的“1”。
    "tel-national"
    -
    不含国家/地区代码部分的完整电话号码,包括国家/地区内部前缀。 对于电话号码“ 1-855-555-6502”,该字段的值为“ 855-555-6502”。
    +
    不含国家/地区代码部分的完整电话号码,包括国家/地区内部前缀。对于电话号码“1-855-555-6502”,该字段的值为“855-555-6502”。
    "tel-area-code"
    区号,如果适用,可应用任何国家或地区内部前缀。
    "tel-local"
    -
    不带国家或地区代码的电话号码。 这可以进一步分为两部分,分别是具有交换号码的电话号码,然后是交换局中的号码。 对于电话号码“ 555-6502”, 对于“ 555”使用 "tel-local-prefix" ,对于"6502"使用  "tel-local-suffix" 。
    +
    不带国家或地区代码的电话号码。这可以进一步分为两部分,分别是具有交换号码的电话号码,然后是交换局中的号码。对于电话号码“555-6502”,对于“555”使用 "tel-local-prefix" ,对于"6502"使用  "tel-local-suffix" 。
    "tel-extension"
    电话号码中的电话分机代码,例如旅馆中的房间或套房号或公司中的办公室分机号。
    "impp"
    -
    即时消息协议端点的 URL,例如“ xmpp:username@example.net”。
    +
    即时消息协议端点的 URL,例如“xmpp:username@example.net”。
    "url"
    URL,例如在给定表单中其他字段的上下文的情况下的主页或公司网站地址等。
    "photo"
    @@ -157,7 +157,7 @@

    价值

    有关更多详细信息,请参见 WHATWG 标准。 

    -

    注意: 与其他浏览器不同, autocomplete 属性还控制 Firefox 是否会跨页面加载保持— 是否在整个页面加载期间保持  <input> 元素,<textarea> 元素,或整个 <form> 的动态禁用状态和(如果适用)动态检查状态。 持久性功能默认情况下处于启用状态。 将 autocomplete 属性的值设置为off 将禁用此功能。即使autocomplete 属性通常由于其type而不适用,也可以这样做。 参考 {{bug(654072)}}.

    +

    注意: 与其他浏览器不同, autocomplete 属性还控制 Firefox 是否会跨页面加载保持— 是否在整个页面加载期间保持  <input> 元素,<textarea> 元素,或整个 <form> 的动态禁用状态和(如果适用)动态检查状态。持久性功能默认情况下处于启用状态。 将 autocomplete 属性的值设置为off 将禁用此功能。即使autocomplete 属性通常由于其type而不适用,也可以这样做。 参考 {{bug(654072)}}.

    例子

    @@ -179,7 +179,7 @@

    表单布局的灵活性

    变化

    -

    每个行政级别的使用方式因国家/地区而异。 以下是一些示例; 这并不是详尽的清单。

    +

    每个行政级别的使用方式因国家/地区而异。以下是一些示例;这并不是详尽的清单。

    美国

    @@ -188,15 +188,15 @@

    美国

    大街 432 号
    Exampleville CA 95555

    -

    在美国,地址中最不明确的部分是州,在这种情况下为“ CA”(美国邮政服务的正式缩写为“ California”)。 因此,address-level1 是状态,在这种情况下为“ CA”。

    +

    在美国,地址中最不明确的部分是州,在这种情况下为“CA”(美国邮政服务的正式缩写为“California”)。因此,address-level1 是状态,在这种情况下为“CA”。

    -

    地址的倒数第二个特定部分是城市或城镇名称,因此在此示例地址中, address-level2 为“ Exampleville”。

    +

    地址的倒数第二个特定部分是城市或城镇名称,因此在此示例地址中, address-level2 为“Exampleville”。

    美国地址不使用 3 级及更高级别。

    英国

    -

    在英国,地址输入表单通常包含两个地址级别以及一个,两个或三个地址行,具体取决于地址。 完整的地址如下所示:

    +

    在英国,地址输入表单通常包含两个地址级别以及一个,两个或三个地址行,具体取决于地址。完整的地址如下所示:

    Frogmarch 街 103 号
    上层包装
    @@ -208,10 +208,10 @@

    英国

    • address-level1: 在这种情况下,该县为“苏塞克斯”。
    • address-level2: 在这种情况下,城镇为“上层包装”。.
    • -
    • address-line1: 房屋/街道详情 - “ Frogmarch 街道 103 号”
    • +
    • address-line1: 房屋/街道详情 - “Frogmarch 街道 103 号”
    -

    邮政编码是分开的。 请注意,您实际上可以仅使用邮政编码和 address-line1 在英国成功发送邮件,因此它们应该是唯一的必填项,但通常人们会提供更多详细信息。

    +

    邮政编码是分开的。请注意,您实际上可以仅使用邮政编码和 address-line1 在英国成功发送邮件,因此它们应该是唯一的必填项,但通常人们会提供更多详细信息。

    中国

    diff --git a/files/zh-cn/web/html/attributes/crossorigin/index.html b/files/zh-cn/web/html/attributes/crossorigin/index.html index 8dce17cf3c041c..1c6e3a993fdf11 100644 --- a/files/zh-cn/web/html/attributes/crossorigin/index.html +++ b/files/zh-cn/web/html/attributes/crossorigin/index.html @@ -14,7 +14,7 @@ translation_of: Web/HTML/Attributes/crossorigin original_slug: Web/HTML/CORS_settings_attributes --- -

    在 HTML5 中,一些 HTML 元素提供了对 CORS 的支持, 例如 {{ HTMLElement("audio") }}、{{ HTMLElement("img") }}、{{ HTMLElement("link") }}、{{ HTMLElement("script") }} 和 {{ HTMLElement("video") }} 均有一个跨域属性 (crossOrigin property),它允许你配置元素获取数据的 CORS 请求。 

    +

    在 HTML5 中,一些 HTML 元素提供了对 CORS 的支持,例如 {{ HTMLElement("audio") }}、{{ HTMLElement("img") }}、{{ HTMLElement("link") }}、{{ HTMLElement("script") }} 和 {{ HTMLElement("video") }} 均有一个跨域属性 (crossOrigin property),它允许你配置元素获取数据的 CORS 请求。 

    在媒体元素上被使用的 crossorigin 内容属性是一个 CORS 设置属性。

    diff --git a/files/zh-cn/web/html/attributes/index.html b/files/zh-cn/web/html/attributes/index.html index 2d675e2799335a..a6fd8bdfd8bf36 100644 --- a/files/zh-cn/web/html/attributes/index.html +++ b/files/zh-cn/web/html/attributes/index.html @@ -322,7 +322,7 @@

    属性列表

    - + diff --git a/files/zh-cn/web/html/attributes/pattern/index.md b/files/zh-cn/web/html/attributes/pattern/index.md index 2d7971fcea39b7..34c46f3cc6b2cd 100644 --- a/files/zh-cn/web/html/attributes/pattern/index.md +++ b/files/zh-cn/web/html/attributes/pattern/index.md @@ -11,7 +11,7 @@ translation_of: Web/HTML/Attributes/pattern {{HTMLSidebar}} -**`pattern`** 属性规定了一个表单控件的值应该匹配的 [正则表达式](/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions)。 如果一个非 `null` 值不满足 `pattern` 值设置的约束,{{domxref('ValidityState')}} 对象的只读 {{domxref('ValidityState.patternMismatch','patternMismatch')}} 属性将为真。 +**`pattern`** 属性规定了一个表单控件的值应该匹配的 [正则表达式](/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions)。如果一个非 `null` 值不满足 `pattern` 值设置的约束,{{domxref('ValidityState')}} 对象的只读 {{domxref('ValidityState.patternMismatch','patternMismatch')}} 属性将为真。 `pattern` 属性是 {{HTMLElement("input/text", "text")}}, {{HTMLElement("input/tel", "tel")}}, {{HTMLElement("input/email", "email")}}, {{HTMLElement("input/url", "url")}}, {{HTMLElement("input/password", "password")}} 和 {{HTMLElement("input/search", "search")}} 等输入类型的属性。 diff --git a/files/zh-cn/web/html/element/a/index.html b/files/zh-cn/web/html/element/a/index.html index 71e85aa440f756..3f26441a9863b9 100644 --- a/files/zh-cn/web/html/element/a/index.html +++ b/files/zh-cn/web/html/element/a/index.html @@ -94,12 +94,12 @@

    属性

    {{htmlattrdef("rel")}}
    该属性指定了目标对象到链接对象的关系。该值是空格分隔的列表类型值
    {{htmlattrdef("target")}}
    -
    该属性指定在何处显示链接的资源。 取值为标签(tab),窗口(window),或框架(iframe)等浏览上下文的名称或其他关键词。以下关键字具有特殊的意义: +
    该属性指定在何处显示链接的资源。取值为标签(tab),窗口(window),或框架(iframe)等浏览上下文的名称或其他关键词。以下关键字具有特殊的意义:
    • _self: 当前页面加载,即当前的响应到同一 HTML 4 frame(或 HTML5 浏览上下文)。此值是默认的,如果没有指定属性的话。
    • _blank: 新窗口打开,即到一个新的未命名的 HTML4 窗口或 HTML5 浏览器上下文
    • _parent: 加载响应到当前框架的 HTML4 父框架或当前的 HTML5 浏览上下文的父浏览上下文。如果没有 parent 框架或者浏览上下文,此选项的行为方式与 _self 相同。
    • -
    • _top: IHTML4 中:加载的响应成完整的,原来的窗口,取消所有其它 frame。 HTML5 中:加载响应进入顶层浏览上下文(即,浏览上下文,它是当前的一个的祖先,并且没有 parent)。如果没有 parent 框架或者浏览上下文,此选项的行为方式相同_self
    • +
    • _top: IHTML4 中:加载的响应成完整的,原来的窗口,取消所有其它 frame。HTML5 中:加载响应进入顶层浏览上下文(即,浏览上下文,它是当前的一个的祖先,并且没有 parent)。如果没有 parent 框架或者浏览上下文,此选项的行为方式相同_self
    @@ -118,9 +118,9 @@

    属性

    过时的

    {{htmlattrdef("charset")}} {{obsoleteGeneric("inline","HTML5")}}
    -
    此属性定义链接资源的字符编码。该值是一个空格- 和/或逗号分隔的RFC 2045中定义的字符集列表。默认值是 ISO-8859-1。 +
    此属性定义链接资源的字符编码。该值是一个空格 - 和/或逗号分隔的RFC 2045中定义的字符集列表。默认值是 ISO-8859-1。
    -

    使用说明:在 HTML5 中该属性已作废,不应使用。 为了实现其效果,使用 HTTP content - type header 的链接资源。

    +

    使用说明:在 HTML5 中该属性已作废,不应使用。为了实现其效果,使用 HTTP content - type header 的链接资源。

    {{htmlattrdef("coords")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}
    @@ -137,7 +137,7 @@

    过时的

    {{htmlattrdef("shape")}} {{HTMLVersionInline(4)}} only, {{obsoleteGeneric("inline","HTML5")}}
    -
    此属性用于定义一个可选的超链接相关的一个数字来创建图像映射区域,该属性的值是圆,默认情况下,多边形,矩形。 所述的coords 属性的格式取决于形状的值。对于圆,该值的 x,y,r 其中 x 和 y 为圆心像素坐标,r 是像素值半径。对于矩形,该coords 属性应该是 x,y,w,h。x,y 值定义的矩形的左上角的位置,而 w 和 h 分别定义宽度和高度。多边形形状的值需要 x1,y1,x2,y2,......值来定义 coords。每对 x,y 定义多边形的一个点,连续点由直线接合和,最后一个点连接到第一个点。默认为形状的值需要将整个封闭区域,典型的图像,可以使用。 +
    此属性用于定义一个可选的超链接相关的一个数字来创建图像映射区域,该属性的值是圆,默认情况下,多边形,矩形。所述的coords 属性的格式取决于形状的值。对于圆,该值的 x,y,r 其中 x 和 y 为圆心像素坐标,r 是像素值半径。对于矩形,该coords 属性应该是 x,y,w,h。x,y 值定义的矩形的左上角的位置,而 w 和 h 分别定义宽度和高度。多边形形状的值需要 x1,y1,x2,y2,......值来定义 coords。每对 x,y 定义多边形的一个点,连续点由直线接合和,最后一个点连接到第一个点。默认为形状的值需要将整个封闭区域,典型的图像,可以使用。
    说明:建议使用 使用 map 属性在 {{HTMLElement("img")}} 元素和相关的{{HTMLElement("map")}}元素中来定义热点而不是用形状属性。
    @@ -225,7 +225,7 @@

    备注

    无障碍建议

    -

    锚点标签常常通过将 href 属性设置为 "#""javascript:void(0)" 来创造一个能阻止页面刷新的伪按钮的方式被滥用。 这些属性值会在拖动 / 复制链接时导致意外行为,在新窗口 / 新标签打开链接,加入书签以及 JavaScript 仍在下载时会出现错误或被禁用。这也会向辅助技术(如屏幕阅读器)传达不正确的语义。在这些情况下,推荐使用 {{HTMLElement("button")}} 来代替。通常情况下,您应该只将锚点用于正常的 URL 导航。

    +

    锚点标签常常通过将 href 属性设置为 "#""javascript:void(0)" 来创造一个能阻止页面刷新的伪按钮的方式被滥用。这些属性值会在拖动 / 复制链接时导致意外行为,在新窗口 / 新标签打开链接,加入书签以及 JavaScript 仍在下载时会出现错误或被禁用。这也会向辅助技术(如屏幕阅读器)传达不正确的语义。在这些情况下,推荐使用 {{HTMLElement("button")}} 来代替。通常情况下,您应该只将锚点用于正常的 URL 导航。

    Clicking 及 focus

    diff --git a/files/zh-cn/web/html/element/abbr/index.html b/files/zh-cn/web/html/element/abbr/index.html index 3716e1d535dfe7..e3395012870417 100644 --- a/files/zh-cn/web/html/element/abbr/index.html +++ b/files/zh-cn/web/html/element/abbr/index.html @@ -66,7 +66,7 @@

    典型使用场景

  • 当你想为缩写在文档流外提供一段扩展或定义的时候,为 <abbr> 设置一个合适的{{htmlattrxref("title")}}。
  • 在定义一个读者可能不太熟悉的缩写时,使用 <abbr> 和title属性或内联的文本来表现这个术语。
  • 当文本中出现需要进行语义上的标注的缩写词时,<abbr>元素可用于依次将其作用样式和脚本。
  • -
  • 可以将 <abbr> 与 {{HTMLElement("dfn")}} 配合使用来建立缩写或首字母缩略词的定义。 请参阅下面的示例 定义一个缩写
  • +
  • 可以将 <abbr> 与 {{HTMLElement("dfn")}} 配合使用来建立缩写或首字母缩略词的定义。请参阅下面的示例 定义一个缩写
  • 语法注意事项

    @@ -79,7 +79,7 @@

    默认样式

    • 一些浏览器,比如 IE,对它的添加的样式和{{HTMLElement("span")}} 元素的样式完全相同。
    • -
    • Opera、Firefox 和其他一些浏览器给这个元素的内容添加一条点状下划线 。
    • +
    • Opera、Firefox 和其他一些浏览器给这个元素的内容添加一条点状下划线。
    • 一些浏览器不仅添加点状下划线,而且还把元素的内容添加小写大写字母的样式。若要避免这种样式,在 CSS 中添加 {{cssxref('font-variant')}}: none
    diff --git a/files/zh-cn/web/html/element/acronym/index.html b/files/zh-cn/web/html/element/acronym/index.html index 7f01f62e32750c..429b290d5d9ffa 100644 --- a/files/zh-cn/web/html/element/acronym/index.html +++ b/files/zh-cn/web/html/element/acronym/index.html @@ -37,7 +37,7 @@

    默认样式

    • 一些浏览器,像 Internet Explorer,赋予它和 {{HTMLElement("span")}} 元素相同的样式。
    • Opera, Firefox,和 一些其他的浏览器在元素内容下方添加了一条点状的下划线。
    • -
    • 一小部分浏览器不仅添加了点状下划线, 而且 put it in small caps; 为避免这种样式, 可以在 CSS 中添加{{cssxref('font-variant')}}: none 处理这种情况。
    • +
    • 一小部分浏览器不仅添加了点状下划线,而且 put it in small caps; 为避免这种样式,可以在 CSS 中添加{{cssxref('font-variant')}}: none 处理这种情况。

    因此强烈建议 Web 作者们不要依赖默认的样式。

    diff --git a/files/zh-cn/web/html/element/applet/index.html b/files/zh-cn/web/html/element/applet/index.html index 071b78823136a7..0ccb2b5726defb 100644 --- a/files/zh-cn/web/html/element/applet/index.html +++ b/files/zh-cn/web/html/element/applet/index.html @@ -46,7 +46,7 @@

    属性(Attributes)

    {{htmlattrdef("object")}}
    该属性指定一个序列化表示的 applet 的 URL。
    {{htmlattrdef("src")}}
    -
    为 Internet Explorer 4 及更高版本制定,该属性为 applet 相关文件指定一个 URL。 该定义及使用是不明确的,也不属于 HTML 标准。
    +
    为 Internet Explorer 4 及更高版本制定,该属性为 applet 相关文件指定一个 URL。该定义及使用是不明确的,也不属于 HTML 标准。
    {{htmlattrdef("vspace")}}
    该属性指定了保存在 applet 以上或以下的额外垂直空间,以像素为单位。
    {{htmlattrdef("width")}}
    diff --git a/files/zh-cn/web/html/element/area/index.html b/files/zh-cn/web/html/element/area/index.html index 03123079ef9498..abf55cad4d6981 100644 --- a/files/zh-cn/web/html/element/area/index.html +++ b/files/zh-cn/web/html/element/area/index.html @@ -32,7 +32,7 @@

    属性

    {{htmlattrdef("alt")}}
    -
    在未显示图像的浏览器上显示代替的文本字符串。这个文本应该能传达给用户与显示图像而没有文本的情况下同等的选择(译者注:就是字和图片表达一个意思)。在 HTML4 中, 这个属性时必需的,但是可以是一个空的串 ("")。在 HTML5 中,这个属性只有在href 属性被使用的时候才是必需的。
    +
    在未显示图像的浏览器上显示代替的文本字符串。这个文本应该能传达给用户与显示图像而没有文本的情况下同等的选择(译者注:就是字和图片表达一个意思)。在 HTML4 中,这个属性时必需的,但是可以是一个空的串 ("")。在 HTML5 中,这个属性只有在href 属性被使用的时候才是必需的。
    @@ -44,7 +44,7 @@

    属性

    {{htmlattrdef("href")}}
    -
    area 的超链接,值为一个 URL. HTML4 里,这个值不管是不是有值都要明确指定出来. HTML5 里则不需要。
    +
    area 的超链接,值为一个 URL. HTML4 里,这个值不管是不是有值都要明确指定出来。HTML5 里则不需要。
    @@ -91,11 +91,11 @@

    属性

    {{htmlattrdef("target")}}
    -
    本属性指明了在什么地方显示链接的资源. HTML4 里,这个值是一个 frame 的链接或者关键字. HTML5 里,它是一个浏览器上下文 (比如:标签,窗口或者内嵌的 frame) 的链接或者关键字。值的含义: +
    本属性指明了在什么地方显示链接的资源。HTML4 里,这个值是一个 frame 的链接或者关键字。HTML5 里,它是一个浏览器上下文 (比如:标签,窗口或者内嵌的 frame) 的链接或者关键字。值的含义:
    • _self: 在当前区域加载链接指向的资源。这个是默认值。
    • _blank: 在新的未命名的窗口或者 tab 里加载超链接资源。
    • -
    • _parent: 在父级加载超链接资源. HTML4 里,是当前 frame 的父级,HTML5 里是当前的浏览器上下文,如果当前环境没有父级,行为和_self一样。
    • +
    • _parent: 在父级加载超链接资源。HTML4 里,是当前 frame 的父级,HTML5 里是当前的浏览器上下文,如果当前环境没有父级,行为和_self一样。
    • _top: HTML4 里:将响应加载到完整的原始窗口中,取消所有其他帧。在 HTML5 中:将响应加载到顶级浏览上下文 (也就是说,浏览上下文是当前版本的祖先,并且没有父类)。如果没有父类,这个选项的行为方式与 self 相同
    本属性只能在指明 href 属性之后使用。
    diff --git a/files/zh-cn/web/html/element/aside/index.html b/files/zh-cn/web/html/element/aside/index.html index f229a95f52564f..69291d3ea11114 100644 --- a/files/zh-cn/web/html/element/aside/index.html +++ b/files/zh-cn/web/html/element/aside/index.html @@ -48,7 +48,7 @@

    属性

    使用说明

      -
    • 不要使用 <aside> 元素去尾随括号内的文本 ,因为这种文本被认为是主要流内容的一部分。
    • +
    • 不要使用 <aside> 元素去尾随括号内的文本,因为这种文本被认为是主要流内容的一部分。

    示例

    diff --git a/files/zh-cn/web/html/element/audio/index.html b/files/zh-cn/web/html/element/audio/index.html index f6c5bbcb4c573c..b3705b7df5f2c3 100644 --- a/files/zh-cn/web/html/element/audio/index.html +++ b/files/zh-cn/web/html/element/audio/index.html @@ -11,7 +11,7 @@ ---

    {{HTMLRef}}

    -

    HTML <audio> 元素用于在文档中嵌入音频内容。 <audio> 元素可以包含一个或多个音频资源, 这些音频资源可以使用 src 属性或者{{HTMLElement("source")}} 元素来进行描述:浏览器将会选择最合适的一个来使用。也可以使用 {{domxref("MediaStream")}} 将这个元素用于流式媒体。

    +

    HTML <audio> 元素用于在文档中嵌入音频内容。 <audio> 元素可以包含一个或多个音频资源,这些音频资源可以使用 src 属性或者{{HTMLElement("source")}} 元素来进行描述:浏览器将会选择最合适的一个来使用。也可以使用 {{domxref("MediaStream")}} 将这个元素用于流式媒体。

    {{EmbedInteractiveExample("pages/tabbed/audio.html","tabbed-standard")}}

    @@ -36,7 +36,7 @@

    属性

    枚举属性  展示音频资源是否可以通过 CORS 加载。支持 CORS 的资源  可以被 {{HTMLElement("canvas")}} 元素复用而不污染。可选值如下:
    anonymous
    -
    在发送跨域请求时不携带验证信息。换句话说,浏览器在发送Origin: HTTP 请求首部时将不携带 cookie、 X.509 安全令牌、也不会执行任何 HTTP 基本认证。如果服务器没有给予源站信任(也就是说没有设置 Access-Control-Allow-Origin: 响应首部),那么图片就被认为是污染的,它就会被限制使用。
    +
    在发送跨域请求时不携带验证信息。换句话说,浏览器在发送Origin: HTTP 请求首部时将不携带 cookie、X.509 安全令牌、也不会执行任何 HTTP 基本认证。如果服务器没有给予源站信任(也就是说没有设置 Access-Control-Allow-Origin: 响应首部),那么图片就被认为是污染的,它就会被限制使用。
    use-credentials
    在发送跨域请求时携带验证信息。换句话说,在发送Origin: HTTP 请求首部时将携带 cookie、安全令牌、并且执行 HTTP 基本认证。如果服务器没有给予源站信任(通过设置Access-Control-Allow-Credentials: 响应首部)那么图片就被认为是污染的,它就会被限制使用。
    @@ -80,7 +80,7 @@

    属性

    {{htmlattrdef("src")}}
    -
    嵌入的音频的 URL。 该 URL 应遵从 HTTP access controls. 这是一个可选属性;你可以在 audio 元素中使用 {{htmlelement("source")}} 元素来替代该属性指定嵌入的音频。
    +
    嵌入的音频的 URL。该 URL 应遵从 HTTP access controls. 这是一个可选属性;你可以在 audio 元素中使用 {{htmlelement("source")}} 元素来替代该属性指定嵌入的音频。

    事件

    diff --git a/files/zh-cn/web/html/element/bdi/index.html b/files/zh-cn/web/html/element/bdi/index.html index 30b253c091f27b..7d92a6a9ef154b 100644 --- a/files/zh-cn/web/html/element/bdi/index.html +++ b/files/zh-cn/web/html/element/bdi/index.html @@ -98,6 +98,6 @@

    浏览器兼容

    参见

      -
    • 相关元素: {{HTMLElement("bdo")}}
    • -
    • 相关属性: {{cssxref("direction")}}, {{cssxref("unicode-bidi")}}
    • +
    • 相关元素:{{HTMLElement("bdo")}}
    • +
    • 相关属性:{{cssxref("direction")}}, {{cssxref("unicode-bidi")}}
    diff --git a/files/zh-cn/web/html/element/bgsound/index.html b/files/zh-cn/web/html/element/bgsound/index.html index 6b9805c3b24e91..41e2601f4458c3 100644 --- a/files/zh-cn/web/html/element/bgsound/index.html +++ b/files/zh-cn/web/html/element/bgsound/index.html @@ -17,13 +17,13 @@

    属性

    {{htmlattrdef("balance")}}
    -
    该属性取值在-10,000 到 +10,000,它决定扬声器之间的音量如何分配。
    +
    该属性取值在 -10,000 到 +10,000,它决定扬声器之间的音量如何分配。
    {{htmlattrdef("loop")}}
    该属性表明音频被播放的次数,是一个数值或者关键字 infinite。
    {{htmlattrdef("src")}}
    该属性定义了音频文件的 URL,必须是以下格式之一:.wav,.au,.mid
    {{htmlattrdef("volume")}}
    -
    该属性值域为-10,000 到 0,它决定背景音乐的音量大小。
    +
    该属性值域为 -10,000 到 0,它决定背景音乐的音量大小。

    示例

    diff --git a/files/zh-cn/web/html/element/button/index.html b/files/zh-cn/web/html/element/button/index.html index 6df7b44ffe98d6..6784747999cf9f 100644 --- a/files/zh-cn/web/html/element/button/index.html +++ b/files/zh-cn/web/html/element/button/index.html @@ -3,7 +3,7 @@ slug: Web/HTML/Element/button translation_of: Web/HTML/Element/button --- -

    HTML <button> 元素表示一个可点击的按钮,可以用在表单或文档其它需要使用简单标准按钮的地方。 默认情况下,HTML 按钮的显示样式接近于 {{Glossary("user agent")}} 所在的宿主系统平台(用户操作系统)的按钮, 但你可以使用 CSS 来改变按钮的样貌。

    +

    HTML <button> 元素表示一个可点击的按钮,可以用在表单或文档其它需要使用简单标准按钮的地方。 默认情况下,HTML 按钮的显示样式接近于 {{Glossary("user agent")}} 所在的宿主系统平台(用户操作系统)的按钮,但你可以使用 CSS 来改变按钮的样貌。

    height {{ HTMLElement("canvas") }}, {{ HTMLElement("embed") }}, {{ HTMLElement("iframe") }}, {{ HTMLElement("img") }}, {{ HTMLElement("input") }}, {{ HTMLElement("object") }}, {{ HTMLElement("video") }}注意:在某些情况下,例如<div>,这是一个遗留属性,在这种情况下应该使用 CSS height 属性。 在其他情况下,例如<canvas>,必须使用此属性指定高度。注意:在某些情况下,例如<div>,这是一个遗留属性,在这种情况下应该使用 CSS height 属性。在其他情况下,例如<canvas>,必须使用此属性指定高度。
    @@ -182,7 +182,7 @@

    示例

    {{ EmbedLiveSample('示例', 200, 64) }}

    -

    请注意上例中应用了 CSS 。

    +

    请注意上例中应用了 CSS。

    技术规范

    diff --git a/files/zh-cn/web/html/element/caption/index.html b/files/zh-cn/web/html/element/caption/index.html index 1f2346340b2aad..73288ec41f3cb7 100644 --- a/files/zh-cn/web/html/element/caption/index.html +++ b/files/zh-cn/web/html/element/caption/index.html @@ -5,7 +5,7 @@ ---

    简介

    -

    HTML <caption> 元素 (or HTML 表格标题元素) 展示一个表格的标题, 它常常作为 {{HTMLElement("table")}} 的第一个子元素出现,同时显示在表格内容的最前面,但是,它同样可以被 CSS 样式化,所以,它同样可以出现在任何一个一个相对于表格的做任意位置。

    +

    HTML <caption> 元素 (or HTML 表格标题元素) 展示一个表格的标题,它常常作为 {{HTMLElement("table")}} 的第一个子元素出现,同时显示在表格内容的最前面,但是,它同样可以被 CSS 样式化,所以,它同样可以出现在任何一个一个相对于表格的做任意位置。

    @@ -94,7 +94,7 @@

    Browser compatibility

    See also

      -
    • 其他与 table 相关的 HTML 元素: {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};
    • +
    • 其他与 table 相关的 HTML 元素:{{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("table")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};
    • 可能对{{HTMLElement("caption")}} 元素有用的 CSS 属性:
      • {{cssxref("text-align")}}, {{cssxref("caption-side")}}.
      • diff --git a/files/zh-cn/web/html/element/cite/index.html b/files/zh-cn/web/html/element/cite/index.html index 2b7ec33db30269..d6a0c81a2b02f7 100644 --- a/files/zh-cn/web/html/element/cite/index.html +++ b/files/zh-cn/web/html/element/cite/index.html @@ -11,7 +11,7 @@ ---
        {{HTMLRef}}
        -

        HTML 引用( Citation)标签 (<cite>) 表示一个作品的引用,且必须包含作品的标题。这个引用可能是一个根据适当的上下文约定关联引用的元数据的缩写。

        +

        HTML 引用(Citation)标签 (<cite>) 表示一个作品的引用,且必须包含作品的标题。这个引用可能是一个根据适当的上下文约定关联引用的元数据的缩写。

        {{EmbedInteractiveExample("pages/tabbed/cite.html", "tabbed-standard")}}
        diff --git a/files/zh-cn/web/html/element/col/index.html b/files/zh-cn/web/html/element/col/index.html index 4f2a15bf97ec2d..19335af4b62fbc 100644 --- a/files/zh-cn/web/html/element/col/index.html +++ b/files/zh-cn/web/html/element/col/index.html @@ -54,7 +54,7 @@

        属性

        {{htmlattrdef("bgcolor")}} {{Non-standard_inline}}
        -
        定义列中对应的每个单元格的背景色。其值是 sRGB 定义的 6 位 16 进制代码之一,前缀为 '#'。 也可以使用以下 16 个预定义的颜色字符: +
        定义列中对应的每个单元格的背景色。其值是 sRGB 定义的 6 位 16 进制代码之一,前缀为 '#'。也可以使用以下 16 个预定义的颜色字符:
    @@ -108,7 +108,7 @@

    属性

    -
    注意:不要使用这个属性, 它是非标准的,并且只实现了 IE 浏览器中的部分版本: {{HTMLElement("col")}} 元素的样式应该使用 CSS. 在{{HTMLElement("td")}}元素上使用 CSS 的 {{cssxref("background-color")}} 属性即可实现相同效果。
    +
    注意:不要使用这个属性, 它是非标准的,并且只实现了 IE 浏览器中的部分版本:{{HTMLElement("col")}} 元素的样式应该使用 CSS. 在{{HTMLElement("td")}}元素上使用 CSS 的 {{cssxref("background-color")}} 属性即可实现相同效果。
    diff --git a/files/zh-cn/web/html/element/data/index.html b/files/zh-cn/web/html/element/data/index.html index d268bef44f5704..860165d4c48d9e 100644 --- a/files/zh-cn/web/html/element/data/index.html +++ b/files/zh-cn/web/html/element/data/index.html @@ -47,7 +47,7 @@

    属性

    {{htmlattrdef("value")}}
    -
    该属性指定元素内容所对应的数据,或者说 “机器可读的翻译”。
    +
    该属性指定元素内容所对应的数据,或者说“机器可读的翻译”。

    示例

    diff --git a/files/zh-cn/web/html/element/dir/index.html b/files/zh-cn/web/html/element/dir/index.html index fc017298127be6..6d13467df82e38 100644 --- a/files/zh-cn/web/html/element/dir/index.html +++ b/files/zh-cn/web/html/element/dir/index.html @@ -10,7 +10,7 @@ ---
    {{Obsolete_header()}}
    -

    已废弃的 HTML 目录元素<dir>)被作为一个文件和/或文件夹的目录的容器,可能还有 {{Glossary("user agent", "用户代理")}} 应用的样式与图标。 Do not use this obsolete element; instead, you should use the {{HTMLElement("ul")}} element for lists, including lists of files.

    +

    已废弃的 HTML 目录元素<dir>)被作为一个文件和/或文件夹的目录的容器,可能还有 {{Glossary("user agent", "用户代理")}} 应用的样式与图标。Do not use this obsolete element; instead, you should use the {{HTMLElement("ul")}} element for lists, including lists of files.

    用法注解:不要使用这个元素。虽然它出现在早期的 HTML 规范中,它已经在 HTML4 中废除了,并且在 HTML5 中过时。使用 {{HTMLElement("ul")}} 来代替。
    diff --git a/files/zh-cn/web/html/element/div/index.html b/files/zh-cn/web/html/element/div/index.html index da6f8d8920fdaa..0109840181d83d 100644 --- a/files/zh-cn/web/html/element/div/index.html +++ b/files/zh-cn/web/html/element/div/index.html @@ -19,7 +19,7 @@
    {{EmbedInteractiveExample("pages/tabbed/div.html","tabbed-standard")}}
    -

    作为一个 “纯粹的” 容器,<div> 元素在语义上不表示任何特定类型的内容。然而,其可以将内容分组,从而可以使用{{htmlattrxref("class")}}或是{{htmlattrxref("id")}}属性方便的定义内容的格式,也可以在一段文档中划分标记出使用另一种语言书写的内容(使用{{htmlattrxref("lang")}} 属性)等等。

    +

    作为一个“纯粹的”容器,<div> 元素在语义上不表示任何特定类型的内容。然而,其可以将内容分组,从而可以使用{{htmlattrxref("class")}}或是{{htmlattrxref("id")}}属性方便的定义内容的格式,也可以在一段文档中划分标记出使用另一种语言书写的内容(使用{{htmlattrxref("lang")}} 属性)等等。

    @@ -86,7 +86,7 @@

    一个简单的例子

    样式实例

    -

    本例使用 CSS 将样式应用于<div>,从而创建一个阴影框。注意使用<div>上的 {{htmlattrxref("class")}}属性将名为 “shadowbox” 的样式应用于元素。

    +

    本例使用 CSS 将样式应用于<div>,从而创建一个阴影框。注意使用<div>上的 {{htmlattrxref("class")}}属性将名为“shadowbox”的样式应用于元素。

    HTML

    diff --git a/files/zh-cn/web/html/element/dl/index.html b/files/zh-cn/web/html/element/dl/index.html index 234d8008151616..3edddd765d0082 100644 --- a/files/zh-cn/web/html/element/dl/index.html +++ b/files/zh-cn/web/html/element/dl/index.html @@ -105,7 +105,7 @@

    元数据

    </dl> -

    小技巧:通过 CSS3 ,我们可以很容易的在术语后面添加一个与内容无关的分隔符号,比如:

    +

    小技巧:通过 CSS3,我们可以很容易的在术语后面添加一个与内容无关的分隔符号,比如:

    dt:after {
       content: ": ";
    diff --git a/files/zh-cn/web/html/element/dt/index.html b/files/zh-cn/web/html/element/dt/index.html
    index 8b7f94017816fd..7626cfc4efe2f3 100644
    --- a/files/zh-cn/web/html/element/dt/index.html
    +++ b/files/zh-cn/web/html/element/dt/index.html
    @@ -10,7 +10,7 @@
     ---
     

    简介

    -

    HTML <dt> 元素 (或 HTML 术语定义元素)用于在一个定义列表中声明一个术语。该元素仅能作为 {{HTMLElement("dl")}} 的子元素出现。通常在该元素后面会跟着 {{HTMLElement("dd")}} 元素, 然而,多个连续出现的 <dt> 元素都将由出现在它们后面的第一个 {{HTMLElement("dd")}} 元素定义。 

    +

    HTML <dt> 元素 (或 HTML 术语定义元素)用于在一个定义列表中声明一个术语。该元素仅能作为 {{HTMLElement("dl")}} 的子元素出现。通常在该元素后面会跟着 {{HTMLElement("dd")}} 元素,然而,多个连续出现的 <dt> 元素都将由出现在它们后面的第一个 {{HTMLElement("dd")}} 元素定义。 

    • 内容分类 None.
    • diff --git a/files/zh-cn/web/html/element/em/index.html b/files/zh-cn/web/html/element/em/index.html index 63cab944ee88b4..01353ce0871b5e 100644 --- a/files/zh-cn/web/html/element/em/index.html +++ b/files/zh-cn/web/html/element/em/index.html @@ -14,7 +14,7 @@

      简介

      HTML 着重元素 (<em>) 标记出需要用户着重阅读的内容, <em> 元素是可以嵌套的,嵌套层次越深,则其包含的内容被认定为越需要着重阅读。

      -
      请注意: 通常地,该元素会被浏览器展示为斜体文本, 但是,它不应该仅仅用于应用斜体样式;为此目的,请使用 CSS 样式。使用 {{HTMLElement("cite")}} 元素标记作品的标题(书籍,戏剧,歌曲等);它通常也采用斜体样式,但具有不同的含义。使用 {{HTMLElement("strong")}} 元素标记比周围文本更重要的文本。
      +
      请注意: 通常地,该元素会被浏览器展示为斜体文本,但是,它不应该仅仅用于应用斜体样式;为此目的,请使用 CSS 样式。使用 {{HTMLElement("cite")}} 元素标记作品的标题(书籍,戏剧,歌曲等);它通常也采用斜体样式,但具有不同的含义。使用 {{HTMLElement("strong")}} 元素标记比周围文本更重要的文本。
      • 内容类别
        diff --git a/files/zh-cn/web/html/element/font/index.html b/files/zh-cn/web/html/element/font/index.html index 9a72c3f072dd8a..bf19cbf33f6915 100644 --- a/files/zh-cn/web/html/element/font/index.html +++ b/files/zh-cn/web/html/element/font/index.html @@ -27,7 +27,7 @@

        属性

        {{htmlattrdef("color")}}
        这个属性使用颜色名称或是十六进制的 #RRGGBB 格式,来设置文字的颜色。
        {{htmlattrdef("face")}}
        -
        这个属性列出了一个或多个逗号分隔的字体名称。 默认样式中的文档文字,会使用客户端浏览器所支持的,第一个字体风格来渲染。如果本地系统中并没有安装列出的字体,浏览器会使用系统预设的均衡(proportional)或等宽(fixed-width)字体。
        +
        这个属性列出了一个或多个逗号分隔的字体名称。默认样式中的文档文字,会使用客户端浏览器所支持的,第一个字体风格来渲染。如果本地系统中并没有安装列出的字体,浏览器会使用系统预设的均衡(proportional)或等宽(fixed-width)字体。
        {{htmlattrdef("size")}}
        这个属性使用数字或相对值指定文字大小。数字在最小的 7 到最大的 7 之间,默认值为 3。也可以用诸如 +2 或 -3 的相对值指定,这会将其设置为,相对于 {{HTMLElement("basefont")}} 元素 {{htmlattrxref("size", "basefont")}}属性的值,或者如果不存在,则是相对于 3 也就是默认值的值。
        @@ -40,7 +40,7 @@

        浏览器兼容性

        Gecko 注解

        -

        在 Gecko 15.0 {{geckoRelease("15.0")}} 之前的版本, Gecko 并不能正确处理 size 属性的超出范围的数值。对于相对大小,它并不接受超出范围的数值。现在,它已经能够将其正确截断为 -10 到 +10 之内的范围。

        +

        在 Gecko 15.0 {{geckoRelease("15.0")}} 之前的版本,Gecko 并不能正确处理 size 属性的超出范围的数值。对于相对大小,它并不接受超出范围的数值。现在,它已经能够将其正确截断为 -10 到 +10 之内的范围。

        Gecko 15.0 还移除了 <font> 元素对 font-weightpoint-size 属性的支持:这些非标准属性只受 Gecko 引擎支持。

        diff --git a/files/zh-cn/web/html/element/footer/index.html b/files/zh-cn/web/html/element/footer/index.html index 3c9300c74efbfd..68dd13f1b3da8d 100644 --- a/files/zh-cn/web/html/element/footer/index.html +++ b/files/zh-cn/web/html/element/footer/index.html @@ -78,7 +78,7 @@

        浏览器兼容性

        参见

          -
        • 其他 section 相关的元素: {{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("section")}}, {{HTMLElement("address")}};
        • +
        • 其他 section 相关的元素:{{HTMLElement("body")}}, {{HTMLElement("nav")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("section")}}, {{HTMLElement("address")}};
        • Sections and outlines of an HTML5 document.
        • ARIA: Contentinfo role
        diff --git a/files/zh-cn/web/html/element/form/index.html b/files/zh-cn/web/html/element/form/index.html index ad2630fe4ac20a..de114b02da30d9 100644 --- a/files/zh-cn/web/html/element/form/index.html +++ b/files/zh-cn/web/html/element/form/index.html @@ -76,7 +76,7 @@

        属性

      {{htmlattrdef("autocomplete")}}
      -
      用于指示 input 元素是否能够拥有一个默认值,此默认值是由浏览器自动补全的。此设定可以被属于此表单的子元素的 autocomplete 属性覆盖。 可能的值有: +
      用于指示 input 元素是否能够拥有一个默认值,此默认值是由浏览器自动补全的。此设定可以被属于此表单的子元素的 autocomplete 属性覆盖。可能的值有:
      • off:浏览器可能不会自动补全条目(在疑似登录表单中,浏览器倾向于忽略该值,而提供密码自动填充功能,参见 自动填充属性和登录
      • on:浏览器可自动补全条目
      • @@ -121,7 +121,7 @@

        关于提交表单的属性

        此值可以被 {{HTMLElement("button")}}、<input type="submit"><input type="image"> 元素中的 {{htmlattrxref("formmethod", "button")}} 属性覆盖。

      {{htmlattrdef("novalidate")}}
      -
      此布尔值属性表示提交表单时不需要验证表单。 如果没有声明该属性(因此表单需要通过验证)。该属性可以被表单中的 {{HTMLElement("button")}}、<input type="submit"><input type="image"> 元素中的 {{htmlattrxref("formnovalidate", "button")}} 属性覆盖。
      +
      此布尔值属性表示提交表单时不需要验证表单。如果没有声明该属性(因此表单需要通过验证)。该属性可以被表单中的 {{HTMLElement("button")}}、<input type="submit"><input type="image"> 元素中的 {{htmlattrxref("formnovalidate", "button")}} 属性覆盖。
      {{htmlattrdef("target")}}
      表示在提交表单之后,在哪里显示响应信息。在 HTML 4 中,这是一个 frame 的名字/关键字对。在 HTML5 里,这是一个浏览上下文 的名字/关键字(如标签页、窗口或 iframe)。下述关键字有特别含义:
        diff --git a/files/zh-cn/web/html/element/heading_elements/index.html b/files/zh-cn/web/html/element/heading_elements/index.html index 33b802328db597..a0b112b75f1e6f 100644 --- a/files/zh-cn/web/html/element/heading_elements/index.html +++ b/files/zh-cn/web/html/element/heading_elements/index.html @@ -19,7 +19,7 @@
    - + @@ -56,7 +56,7 @@

    使用要点

    • 用户代理可以使用标题信息,例如自动构建文档的目录。
    • -
    • 不要为了减小标题的字体而使用低级别的标题, 而是使用 CSS {{cssxref("font-size")}} 属性。
    • +
    • 不要为了减小标题的字体而使用低级别的标题,而是使用 CSS {{cssxref("font-size")}} 属性。
    • 避免跳过某级标题:始终要从 <h1> 开始,接下来依次使用 <h2> 等等。
    • 使用 {{HTMLElement("section")}} 元素时,为了方便起见,你应该考虑避免在同一个页面上重复使用 <h1>,<h1> 应被用于表示页面的标题,其他的标题当从 <h2> 开始。在使用 section 时,应当为每个 section 都使用一个 <h2>。详情请参考 {{SectionOnPage("/zh-CN/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines", "Defining sections")}}。
    @@ -108,7 +108,7 @@

    可访问性问题

    导航

    -

    对于使用屏幕阅读软件的用户而言,一种常见的导航方式是从一个标题跳到另一个标题,以快速确定页面的内容。 因此,不要跳过一个或多个标题级别。因为这样做可能会造成混乱,使用户困惑于缺少的标题在哪里。

    +

    对于使用屏幕阅读软件的用户而言,一种常见的导航方式是从一个标题跳到另一个标题,以快速确定页面的内容。因此,不要跳过一个或多个标题级别。因为这样做可能会造成混乱,使用户困惑于缺少的标题在哪里。

    错误用法

    diff --git a/files/zh-cn/web/html/element/html/index.html b/files/zh-cn/web/html/element/html/index.html index 45474944121933..62acf7e17ea705 100644 --- a/files/zh-cn/web/html/element/html/index.html +++ b/files/zh-cn/web/html/element/html/index.html @@ -117,6 +117,6 @@

    浏览器兼容性

    参见

      -
    • MathML 顶级元素: {{MathMLElement("math")}}
    • -
    • SVG 顶级元素: {{SVGElement("svg")}}
    • +
    • MathML 顶级元素:{{MathMLElement("math")}}
    • +
    • SVG 顶级元素:{{SVGElement("svg")}}
    diff --git a/files/zh-cn/web/html/element/iframe/index.html b/files/zh-cn/web/html/element/iframe/index.html index 64f353b7b39ebc..1a5c8e08647e04 100644 --- a/files/zh-cn/web/html/element/iframe/index.html +++ b/files/zh-cn/web/html/element/iframe/index.html @@ -44,7 +44,7 @@

    属性

    这是一个历史遗留属性,已经被重新定义为 allow="payment".
    {{htmlattrdef("csp")}} {{experimental_inline}}
    -
    对嵌入的资源配置内容安全策略。 查看 {{domxref("HTMLIFrameElement.csp")}} 获取详情。
    +
    对嵌入的资源配置内容安全策略。查看 {{domxref("HTMLIFrameElement.csp")}} 获取详情。
    {{htmlattrdef("height")}}
    以 CSS 像素格式{{HTMLVersionInline(5)}},或像素格式{{HTMLVersionInline(4.01)}},或百分比格式指定 frame 的高度。默认值为150
    {{htmlattrdef("importance")}} {{experimental_inline}}
    @@ -158,7 +158,7 @@

    脚本

    定位和缩放

    -

    作为一个可替换元素, 可以使用 {{cssxref("object-position")}} 和 {{cssxref("object-fit")}} 来定位、对齐、缩放 <iframe> 元素内的文档。

    +

    作为一个可替换元素,可以使用 {{cssxref("object-position")}} 和 {{cssxref("object-fit")}} 来定位、对齐、缩放 <iframe> 元素内的文档。

    示例

    diff --git a/files/zh-cn/web/html/element/img/index.html b/files/zh-cn/web/html/element/img/index.html index 37c8adbf46f14e..ba658889ec85a2 100644 --- a/files/zh-cn/web/html/element/img/index.html +++ b/files/zh-cn/web/html/element/img/index.html @@ -180,7 +180,7 @@

    属性

    The user agent selects any of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or {{glossary("bandwidth")}} conditions. See our Responsive images tutorial for an example.

    {{htmlattrdef("width")}}
    -
    图像的宽度,在 {{HTMLVersionInline(5)}} 中单位是 CSS 像素, 在 {{HTMLVersionInline(4)}} 中可以是像素也可以是百分比。
    +
    图像的宽度,在 {{HTMLVersionInline(5)}} 中单位是 CSS 像素,在 {{HTMLVersionInline(4)}} 中可以是像素也可以是百分比。
    {{htmlattrdef("usemap")}}
    与元素相关联的 image map 的部分 URL(以 '#' 开始的部分)。
    @@ -294,7 +294,7 @@

    可访问性考量

    使用有实际意义的备用描述

    -

    alt 属性的值应该清晰、简洁地描述图像的内容。它不应该描述 “图像的存在”,或仅仅包含图像的文件名。如果因为图像没有等价的文本描述, alt 属性只得不写或留白,那么可以考虑使用其他方法来呈现图像试图传递的内容。

    +

    alt 属性的值应该清晰、简洁地描述图像的内容。它不应该描述“图像的存在”,或仅仅包含图像的文件名。如果因为图像没有等价的文本描述, alt 属性只得不写或留白,那么可以考虑使用其他方法来呈现图像试图传递的内容。

    不要

    diff --git a/files/zh-cn/web/html/element/input/date/index.html b/files/zh-cn/web/html/element/input/date/index.html index 7e2e447ebf759f..7c0d07348674d1 100644 --- a/files/zh-cn/web/html/element/input/date/index.html +++ b/files/zh-cn/web/html/element/input/date/index.html @@ -101,7 +101,7 @@

    设置日期最大和最小值

    {{ EmbedLiveSample('Setting_maximum_and_minimum_dates', 600, 40) }}

    -

    在结果中我们可以看到,只有 2017 年 4 月份的日期可选 — 输入框中可以编辑的部分只有 “日” 这部分,并且超出 4 月份以外的日期不能通过日期控件的选择小部件选择。

    +

    在结果中我们可以看到,只有 2017 年 4 月份的日期可选 — 输入框中可以编辑的部分只有“日” 这部分,并且超出 4 月份以外的日期不能通过日期控件的选择小部件选择。

    注意: 您应该可以使用 step 属性来改变每次最佳日期时步进(增加值)的天数(例如:或许你只希望使周六可以选)。但是,在编写本文的任何实现中,这似乎并不奏效。

    @@ -113,7 +113,7 @@

    控制输入框大小

    验证

    -

    默认情况下,<input type="date"> 对输入的值不会做任何校验。 UI 实现通常不会让你输入任何不适日期的东西 — 这一点很有帮助 — 但是你任然可以留空或者  (在被优雅降级为 text 类型的输入框) 输入一个不合法的值 (例如: 4 月 32 号)。

    +

    默认情况下,<input type="date"> 对输入的值不会做任何校验。 UI 实现通常不会让你输入任何不适日期的东西 — 这一点很有帮助 — 但是你任然可以留空或者  (在被优雅降级为 text 类型的输入框) 输入一个不合法的值 (例如:4 月 32 号)。

    如果你使用 {{htmlattrxref("min", "input")}} 和 {{htmlattrxref("min", "input")}} 属性去限制可用日期  (参见 设置日期最大和最小值),对于支持的浏览器来说如果你尝试提交一个超出给定范围的日期,那么它将抛出一个错误。然而, 你必须检查这些结果以确保他们在这些日期范围内, 因为只有在用户设备上完全支持日期选择器的情况下,才能执行这些操作。

    @@ -229,7 +229,7 @@

    处理浏览器支持问题

    }
    -

    目前以跨浏览器方式处理表单中日期的最佳方式是让用户在单独的控件中输入 日 , 月 和 年 ({{htmlelement("select")}} 元素正越来越受欢迎; 请看下面的实现), 或者使用 JavaScript 库, 例如  jQuery date picker.

    +

    目前以跨浏览器方式处理表单中日期的最佳方式是让用户在单独的控件中输入 日, 月 和 年 ({{htmlelement("select")}} 元素正越来越受欢迎; 请看下面的实现), 或者使用 JavaScript 库,例如  jQuery date picker.

    例子

    diff --git a/files/zh-cn/web/html/element/input/datetime-local/index.html b/files/zh-cn/web/html/element/input/datetime-local/index.html index 3535b656385d05..e8232729cd8ade 100644 --- a/files/zh-cn/web/html/element/input/datetime-local/index.html +++ b/files/zh-cn/web/html/element/input/datetime-local/index.html @@ -5,7 +5,7 @@ ---
    {{HTMLRef}}
    -

    {{htmlelement("input")}} 元素的 datetime-local 类型创建让用户便捷输入日期和时间的输入控件,包括 “年”、“月”、“日”,以及 “时” 和 “分”。

    +

    {{htmlelement("input")}} 元素的 datetime-local 类型创建让用户便捷输入日期和时间的输入控件,包括“年”、“月”、“日”,以及“时”和“分”。

    {{EmbedInteractiveExample("pages/tabbed/input-datetime-local.html", "tabbed-shorter")}}

    @@ -64,7 +64,7 @@

    取值

    一件需要注意的事情是显示的日期时间的格式与实际 value 里的格式不同,显示的日期和时间格式以用户操作系统所的区域设置信息为准,而控件的日期/时间值 value 总是 yyyy-MM-ddThh:mm 格式。例如,当上例中的值被提供到服务器之后,将会像这样 partydate=2017-06-01T08:30.

    -

    另外请注意,如果这样的数据以 HTTP GET 提交,时间部分的冒号 “:” 需要编码之后才能放在 URL 参数中,例如 partydate=2017-06-01T08%3A30。编码方法请参见 {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} 。

    +

    另外请注意,如果这样的数据以 HTTP GET 提交,时间部分的冒号“:”需要编码之后才能放在 URL 参数中,例如 partydate=2017-06-01T08%3A30。编码方法请参见 {{jsxref("Global_Objects/encodeURI", "encodeURI()")}} 。

    你也可以在 JavaScript 中使用 {{domxref("HTMLInputElement.value")}} 属性来获取和设置日期的值,例如:

    @@ -103,7 +103,7 @@

    设定日期时间的最大

    结果如下:

      -
    • 只有 “2017 年 6 月” 可供选择 —— 只有 “日期” 部分的值可修改,并且 6 月以外的日期不能被选到日期控件内
    • +
    • 只有“2017 年 6 月”可供选择 —— 只有“日期”部分的值可修改,并且 6 月以外的日期不能被选到日期控件内
    • 视你所使用的浏览器,你或许会发现时间选择控件中特定值以外的时间可能不可选(如 Edge),或是无效(参见 校验)但仍可选(如 Chrome)
    diff --git a/files/zh-cn/web/html/element/input/email/index.html b/files/zh-cn/web/html/element/input/email/index.html index 7968ee7cb0e6de..dcab7facfe6a51 100644 --- a/files/zh-cn/web/html/element/input/email/index.html +++ b/files/zh-cn/web/html/element/input/email/index.html @@ -15,7 +15,7 @@

    带有 "email" (电子邮箱) 类型标记的输入框元素 ({{HTMLElement("input")}}) 能够让用户输入或编辑一个电子邮箱地址,此外,如果指定了{{htmlattrxref("multiple", "input")}}属性,用户还可以输入多个电子邮箱地址。在表单提交前,输入框会自动验证输入值是否是一个或多个合法的电子邮箱地址 (非空值且符合电子邮箱地址格式). CSS 伪标签 {{cssxref(":valid")}} 和 {{cssxref(":invalid")}} 能够在校验后自动应用。

    -

    注意: 不支持 “电子邮件” 类型的浏览器可以回退为标准的 “文本” 输入。

    +

    注意: 不支持“电子邮件”类型的浏览器可以回退为标准的“文本”输入。

    {{EmbedInteractiveExample("pages/tabbed/input-email.html", "tabbed-standard")}}
    @@ -69,19 +69,19 @@

    Using email inputs

    -

    电子邮件地址是网络上最频繁输入的文本数据表格; 登录网站,请求信息,允许订单确认,网络邮件等时使用它们。 因此,“电子邮件” 输入类型可以使您作为 Web 开发人员的工作变得更加容易,因为它可以在构建电子邮件地址的用户界面和逻辑时帮助简化您的工作。 当您使用正确的类型值 “email” 创建电子邮件输入时,您将自动验证输入的文本是否至少以正确的形式可能是合法的电子邮件地址。 这有助于避免用户输错地址或提供无效地址的情况。

    +

    电子邮件地址是网络上最频繁输入的文本数据表格; 登录网站,请求信息,允许订单确认,网络邮件等时使用它们。因此,“电子邮件”输入类型可以使您作为 Web 开发人员的工作变得更加容易,因为它可以在构建电子邮件地址的用户界面和逻辑时帮助简化您的工作。当您使用正确的类型值“email”创建电子邮件输入时,您将自动验证输入的文本是否至少以正确的形式可能是合法的电子邮件地址。这有助于避免用户输错地址或提供无效地址的情况。

    -

    然而,重要的是要注意,这不足以确保指定的文本是实际存在的电子邮件地址,对应于站点的用户,或者以任何其他方式可接受。 它只是确保将字段的值正确格式化为电子邮件地址。

    +

    然而,重要的是要注意,这不足以确保指定的文本是实际存在的电子邮件地址,对应于站点的用户,或者以任何其他方式可接受。它只是确保将字段的值正确格式化为电子邮件地址。

    -

    注意:记住用户可以在幕后修改 HTML 也很重要,因此您的站点不得出于任何安全目的使用此验证。 您必须验证所提供文本可能具有任何安全隐患的任何事务的服务器端的电子邮件地址。

    +

    注意:记住用户可以在幕后修改 HTML 也很重要,因此您的站点不得出于任何安全目的使用此验证。您必须验证所提供文本可能具有任何安全隐患的任何事务的服务器端的电子邮件地址。

    A simple email input

    -

    目前,所有实现此元素的浏览器都将其实现为具有基本验证功能的标准文本输入字段。 但是,该规范允许浏览器对此进行纬度调整。 例如,该元素可以与用户设备的内置地址簿集成,以允许从该列表中挑选电子邮件地址。 在最基本的形式中,电子邮件输入可以像这样实现:

    +

    目前,所有实现此元素的浏览器都将其实现为具有基本验证功能的标准文本输入字段。但是,该规范允许浏览器对此进行纬度调整。例如,该元素可以与用户设备的内置地址簿集成,以允许从该列表中挑选电子邮件地址。在最基本的形式中,电子邮件输入可以像这样实现:

    <input id="emailAddress" type="email">
    @@ -189,12 +189,12 @@

    Validation

    There are two levels of content validation available for "email" inputs. First, there's the standard level of validation offered to all {{HTMLElement("input")}}s, which automatically ensures that the contents meet the requirements to be a valid email address. But there's also the option to add additional filtering to ensure that your own specialized needs are met, if you have any.

    -

    重要提示:HTML 表单验证不能替代确保输入的数据格式正确的脚本。 对于某些人来说,调整 HTML 非常容易,因为它允许他们绕过验证,或者完全删除它。 某人也可以完全绕过您的 HTML 并将数据直接提交给您的服务器。 如果您的服务器端代码无法验证它收到的数据,则当数据格式不正确(或数据太大,类型错误等等)输入数据库时,灾难可能会发生。

    +

    重要提示:HTML 表单验证不能替代确保输入的数据格式正确的脚本。对于某些人来说,调整 HTML 非常容易,因为它允许他们绕过验证,或者完全删除它。某人也可以完全绕过您的 HTML 并将数据直接提交给您的服务器。如果您的服务器端代码无法验证它收到的数据,则当数据格式不正确(或数据太大,类型错误等等)输入数据库时,灾难可能会发生。

    Basic validation

    -

    支持 “电子邮件” 输入类型的浏览器会自动提供验证,以确保只有符合 Internet 电子邮件地址标准格式的文本才会输入到输入框中。 实现规范的浏览器应使用与以下正则表达式等效的算法:

    +

    支持“电子邮件”输入类型的浏览器会自动提供验证,以确保只有符合 Internet 电子邮件地址标准格式的文本才会输入到输入框中。实现规范的浏览器应使用与以下正则表达式等效的算法:

    /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}
       [a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
    diff --git a/files/zh-cn/web/html/element/input/file/index.html b/files/zh-cn/web/html/element/input/file/index.html
    index 0b846a1851577d..30cc7a0340f65d 100644
    --- a/files/zh-cn/web/html/element/input/file/index.html
    +++ b/files/zh-cn/web/html/element/input/file/index.html
    @@ -65,7 +65,7 @@
     
     

    -

    文件 input 的 {{htmlattrxref("value", "input")}} 属性包括了一个 {{domxref("DOMString")}},表示已选择文件的路径。如果用户选择了多个文件,则 value 表示他们选择的文件列表中的第一个文件。 可以使用 input 的 HTMLInputElement.files 属性标识其他文件。

    +

    文件 input 的 {{htmlattrxref("value", "input")}} 属性包括了一个 {{domxref("DOMString")}},表示已选择文件的路径。如果用户选择了多个文件,则 value 表示他们选择的文件列表中的第一个文件。可以使用 input 的 HTMLInputElement.files 属性标识其他文件。

    Note: @@ -166,9 +166,9 @@

    唯一文件类型说明符

    • 一个以英文句号(".")开头的合法的不区分大小写的文件名扩展名。例如: .jpg.pdf 或 .doc
    • 一个不带扩展名的 MIME 类型字符串。
    • -
    • 字符串 audio/*, 表示 “任何音频文件”。
    • -
    • 字符串 video/*,表示 “任何视频文件”。
    • -
    • 字符串 image/*,表示 “任何图片文件”。
    • +
    • 字符串 audio/*,表示“任何音频文件”。
    • +
    • 字符串 video/*,表示“任何视频文件”。
    • +
    • 字符串 image/*,表示“任何图片文件”。

    accept 属性的值是一个包含一个或多个(用逗号分隔)这种唯一文件类型说明符的字符串。 例如,一个文件选择器需要能被表示成一张图片的内容,包括标准的图片格式和 PDF 文件,大概是这样的:

    diff --git a/files/zh-cn/web/html/element/input/hidden/index.html b/files/zh-cn/web/html/element/input/hidden/index.html index c906607e94e29e..8eb86e1560f74b 100644 --- a/files/zh-cn/web/html/element/input/hidden/index.html +++ b/files/zh-cn/web/html/element/input/hidden/index.html @@ -58,7 +58,7 @@

    属性值

    {{HTMLElement("input")}}元素的{{htmlattrxref("value", "input")}}属性有{{domxref("DOMString")}},其中包含您想提交到服务器的隐藏数据尽管您可以通过浏览器开发人员工具编辑该值,但明确的是,用户不能通过用户界面对其编辑或看到。

    -

    重要提示:尽管该值未在页面内容中显示给用户,但可以使用任何浏览器的开发人员工具或 “查看源代码” 功能来查看并进行编辑。 请不要依赖 hidden 输入作为安全表单。

    +

    重要提示:尽管该值未在页面内容中显示给用户,但可以使用任何浏览器的开发人员工具或“查看源代码”功能来查看并进行编辑。请不要依赖 hidden 输入作为安全表单。

    额外属性

    @@ -94,12 +94,12 @@

    跟踪被编辑的内容

    典型的工作流程如下所示:

      -
    1. 用户决定编辑他们可以控制的某些内容,例如博客文章或产品条目。 他们可以通过按编辑按钮开始。
    2. +
    3. 用户决定编辑他们可以控制的某些内容,例如博客文章或产品条目。他们可以通过按编辑按钮开始。
    4. 要被编辑的内容从数据库中提取并加载到 HTML 表单中,以允许用户进行更改。
    5. 编辑后,用户提交表单,并将更新后的被数据发送回服务器以在数据库中进行更新。
    -

    在这里的步骤 2 思路中,要被更新的 ID 记录保留在隐藏的输入中。 在步骤 3 中提交表单后,该 ID 随记录内容自动发送回服务器。 该 ID 使站点的服务器端组件确切知道哪些记录需要被提交的数据更新的。

    +

    在这里的步骤 2 思路中,要被更新的 ID 记录保留在隐藏的输入中。在步骤 3 中提交表单后,该 ID 随记录内容自动发送回服务器。该 ID 使站点的服务器端组件确切知道哪些记录需要被提交的数据更新的。

    您可以在下面的 例子 部分中看到完整的示例

    @@ -107,10 +107,10 @@

    改善网站安全性

    隐藏输入表单还用于存储和提交安全令牌或机密信息,以提高网站的安全性。基本思路是,如果用户填写敏感表格,例如在其银行网站上将某笔款项转入另一个帐户的表格,他们将被提供的密钥和证明他们就是他们所说的真实身份,并且他们使用正确的表单来提交转移请求。

    -

    这将阻止恶意用户创建伪造的表单,伪装成银行,然后通过电子邮件将表单发送给毫无戒备心的用户,以诱骗他们将钱转入错误的位置。 这种攻击称为跨站点请求伪造(CSRF);几乎任何信誉良好的服务器端框架都使用隐藏机密来防止此类攻击。

    +

    这将阻止恶意用户创建伪造的表单,伪装成银行,然后通过电子邮件将表单发送给毫无戒备心的用户,以诱骗他们将钱转入错误的位置。这种攻击称为跨站点请求伪造(CSRF);几乎任何信誉良好的服务器端框架都使用隐藏机密来防止此类攻击。

    -

    如前所述,将密钥放置在隐藏的输入中并不能使其固有安全性。 密钥的组成和编码已经可以做到这一点。隐藏输入的值是保持它与数据关联性,并在将表单发送到服务器时自动将其包含在内。 您需要使用精心设计的密钥来真正保护您的网站。

    +

    如前所述,将密钥放置在隐藏的输入中并不能使其固有安全性。密钥的组成和编码已经可以做到这一点。隐藏输入的值是保持它与数据关联性,并在将表单发送到服务器时自动将其包含在内。您需要使用精心设计的密钥来真正保护您的网站。

    验证

    @@ -173,7 +173,7 @@

    例子

    height: 60px; }
    -

    在将表单发送给用户的浏览器之前,服务器会将 ID "postID"的隐藏输入的值设置为其数据库中发送的 ID,并在返回表单时使用该信息来知道要向哪个数据库记录更新改变后的信息。 内容中无需脚本即可处理。

    +

    在将表单发送给用户的浏览器之前,服务器会将 ID "postID"的隐藏输入的值设置为其数据库中发送的 ID,并在返回表单时使用该信息来知道要向哪个数据库记录更新改变后的信息。内容中无需脚本即可处理。

    输出看起来像这样:

    diff --git a/files/zh-cn/web/html/element/input/index.html b/files/zh-cn/web/html/element/input/index.html index b6285252d2d2cc..d25fbf0efa1b6c 100644 --- a/files/zh-cn/web/html/element/input/index.html +++ b/files/zh-cn/web/html/element/input/index.html @@ -416,7 +416,7 @@

    属性

    - + @@ -578,7 +578,7 @@

    属性各论

    When the form above is submitted, the input cause both the name / value pair of fruit=cherry and the dirname / direction pair of fruit.dir=ltr to be sent.

    {{ htmlattrdef("disabled") }}
    -
    这个布尔属性表示此表单控件不可用。 特别是在禁用的控件中, click 事件 将不会被分发 。 并且,禁用的控件的值在提交表单时也不会被提交。如果 type 属性为  hidden,此属性将被忽略。
    +
    这个布尔属性表示此表单控件不可用。特别是在禁用的控件中, click 事件 将不会被分发 。并且,禁用的控件的值在提交表单时也不会被提交。如果 type 属性为  hidden,此属性将被忽略。
    Note: Although not required by the specification, Firefox will by default persist the dynamic disabled state of an <input> across page loads. Use the {{htmlattrxref("autocomplete","input")}} attribute to control this feature.
    @@ -697,14 +697,14 @@

    属性各论

    检查控件值的正则表达式.。pattern 必须匹配整个值,而不仅仅是某些子集.。使用 title 属性来描述帮助用户的模式.。当类型属性的值为 text, search, tel, url 或 email 时,此属性适用,否则将被忽略。译者注:ie10+
    {{ htmlattrdef("placeholder") }} {{ HTMLVersionInline(5) }}
    提示用户输入框的作用。用于提示的占位符文本不能包含回车或换行。仅适用于当type 属性为 text, search, tel, url or email 时; 否则会被忽略。 -
    Note: 请不要用placeholder 属性替换 {{ HTMLElement("label") }} 元素。他们的作用不同:  {{ HTMLElement("label") }} 属性描述表单元素的角色; 也就是说,它展示预期的信息,而placeholder 属性是提示用户内容的输入格式。某些情况下 placeholder 属性对用户不可见, 所以当没有它时也需要保证 form 能被理解。
    +
    Note: 请不要用placeholder 属性替换 {{ HTMLElement("label") }} 元素。他们的作用不同: {{ HTMLElement("label") }} 属性描述表单元素的角色; 也就是说,它展示预期的信息,而placeholder 属性是提示用户内容的输入格式。某些情况下 placeholder 属性对用户不可见, 所以当没有它时也需要保证 form 能被理解。
    {{ htmlattrdef("readonly") }}
    这个布尔属性用于指明用户无法修改控件的值。

    {{ HTMLVersionInline(5) }} 如果控件的 type 属性为 hidden, range, color, checkbox, radio, file 或 type 时,此属性会被忽略。

    {{ htmlattrdef("required") }} {{ HTMLVersionInline(5) }}
    -
    这个属性指定用户在提交表单之前必须为该元素填充值。当 type 属性是 hidden,image 或者按钮类型 (submit,reset,button) 时不可使用. {{ cssxref(":optional") }} 和 {{ cssxref(":required") }} CSS 伪元素的样式将可以被该字段应用作外观。
    +
    这个属性指定用户在提交表单之前必须为该元素填充值。当 type 属性是 hidden,image 或者按钮类型 (submit,reset,button) 时不可使用。{{ cssxref(":optional") }} 和 {{ cssxref(":required") }} CSS 伪元素的样式将可以被该字段应用作外观。
    {{ htmlattrdef("selectionDirection") }} {{ HTMLVersionInline(5) }}
    The direction in which selection occurred. This is "forward" if the selection was made from left-to-right in an LTR locale or right-to-left in an RTL locale, or "backward" if the selection was made in the opposite direction. This can be "none" if the selection direction is unknown.
    {{ htmlattrdef("size") }}
    diff --git a/files/zh-cn/web/html/element/input/month/index.html b/files/zh-cn/web/html/element/input/month/index.html index b56e44f05e5a6e..4e6b38cbc6a3cc 100644 --- a/files/zh-cn/web/html/element/input/month/index.html +++ b/files/zh-cn/web/html/element/input/month/index.html @@ -14,7 +14,7 @@
    {{EmbedInteractiveExample("pages/tabbed/input-month.html", "tabbed-shorter")}}
    -

    这个控件在各个浏览器支持都不同,目前是支持部分浏览器。在桌面上支持情况为 Chrome/Opera 和 Edge 。在移动端支持大部分现代浏览器。在其他浏览器中,这个控件会被优雅的降级到<input type="text">.

    +

    这个控件在各个浏览器支持都不同,目前是支持部分浏览器。在桌面上支持情况为 Chrome/Opera 和 Edge。在移动端支持大部分现代浏览器。在其他浏览器中,这个控件会被优雅的降级到<input type="text">.

    对于那些使用不支持的浏览器的用户,Chrome / Opera 月份控制如下图所示。单击右侧的向下箭头会显示日期选择器,以便您选择日期;你必须手动输入时间。

    @@ -64,7 +64,7 @@

    Value

    在向服务器提交上述值的时候他们看起来像这样:bday-month=1978-06.

    -

    你也可以使用 JavaScript 的 {{domxref("HTMLInputElement.value")}} 来设置日期的值 。例如:

    +

    你也可以使用 JavaScript 的 {{domxref("HTMLInputElement.value")}} 来设置日期的值。例如:

    var monthControl = document.querySelector('input[type="month"]');
     monthControl.value = '1978-06';
    diff --git a/files/zh-cn/web/html/element/input/number/index.html b/files/zh-cn/web/html/element/input/number/index.html index 9f4a418d77b00e..ceebd26f7c5cad 100644 --- a/files/zh-cn/web/html/element/input/number/index.html +++ b/files/zh-cn/web/html/element/input/number/index.html @@ -61,13 +61,13 @@

    使用 number 输入框

    -

    <input type ="number">元素可以帮助您在构建用户界面和将数字输入到表单中的逻辑时简化你的工作。 当你使用正确的 type 值 "number" 创建数字输入时,会自动验证你输入的文本是否为数字,通常是一组向上和向下按钮。

    +

    <input type ="number">元素可以帮助您在构建用户界面和将数字输入到表单中的逻辑时简化你的工作。当你使用正确的 type 值 "number" 创建数字输入时,会自动验证你输入的文本是否为数字,通常是一组向上和向下按钮。

    -

    注意:记住用户可以在幕后修改 HTML 是至关重要的,因此您的网站不得使用简单的客户端验证来实现任何安全目的。 您必须在服务器端验证所提供的值可能具有任何安全含义的任何事务。

    +

    注意:记住用户可以在幕后修改 HTML 是至关重要的,因此您的网站不得使用简单的客户端验证来实现任何安全目的。您必须在服务器端验证所提供的值可能具有任何安全含义的任何事务。

    -

    此外,移动浏览器通过在用户尝试输入值时显示更适合输入数字的特殊键盘,进一步帮助用户体验。 以下屏幕截图来自 Firefox for Android:

    +

    此外,移动浏览器通过在用户尝试输入值时显示更适合输入数字的特殊键盘,进一步帮助用户体验。以下屏幕截图来自 Firefox for Android:

    @@ -80,7 +80,7 @@

    一个简单的 number 输入框

    {{ EmbedLiveSample('一个简单的_number_输入框', 600, 40) }}

    -

    数字输入在为空的时候以及输入单个数字时被认为是有效的,但是否则是无效的。 如果使用{{htmlattrxref("required","input")}}属性,则输入在空时不再被视为有效。

    +

    数字输入在为空的时候以及输入单个数字时被认为是有效的,但是否则是无效的。如果使用{{htmlattrxref("required","input")}}属性,则输入在空时不再被视为有效。

    注:任何数字都是可接受的值,只要它是有效的浮点数(即不是 NaNInfinity)。

    @@ -88,7 +88,7 @@

    一个简单的 number 输入框

    占位符

    -

    有时,提供一个如何输入表单数据的上下文提示是非常友好的。尤其当页面所有{{HTMLElement("input")}}  元素都没有说明标签时,会非常重要。这就是使用占位符的原因。占位符是一个通常用于说明一个输入框的 value 应该如何输入的提示值,当元素的 value 为  "" 时,该提示将出现在编辑框里面。 一旦有数据输入到编辑框中,占位符就会消失;如果该框被清空,占位符将重新出现。

    +

    有时,提供一个如何输入表单数据的上下文提示是非常友好的。尤其当页面所有{{HTMLElement("input")}}  元素都没有说明标签时,会非常重要。这就是使用占位符的原因。占位符是一个通常用于说明一个输入框的 value 应该如何输入的提示值,当元素的 value 为  "" 时,该提示将出现在编辑框里面。一旦有数据输入到编辑框中,占位符就会消失;如果该框被清空,占位符将重新出现。

    这里,我们有一个占位符为"Multiple of 10"的"number" 输入框。请注意当你在编辑字段内容时占位符是如何消失的又是如何重现的。

    @@ -98,7 +98,7 @@

    占位符

    控制步进大小

    -

    默认情况下,向上和向下按钮可以将值增加或减小 1。您可以通过使用{{htmlattrxref("step","input")}} 属性来更改此步长值。 我们上面的例子中的占位符提示我们其值是 10 的倍数,所以设置 step 的值为 10 是合理的:

    +

    默认情况下,向上和向下按钮可以将值增加或减小 1。您可以通过使用{{htmlattrxref("step","input")}} 属性来更改此步长值。我们上面的例子中的占位符提示我们其值是 10 的倍数,所以设置 step 的值为 10 是合理的:

    <input type="number" placeholder="multiple of 10" step="10">
    @@ -108,7 +108,7 @@

    控制步进大小

    指定最小和最大值

    -

    可以使用{{htmlattrxref("min","input")}} 和{{htmlattrxref("max","input")}} 属性指定该字段可以具有的最小值和最大值。 例如,给例子指定最小值为 0,最大值为 100:

    +

    可以使用{{htmlattrxref("min","input")}} 和{{htmlattrxref("max","input")}} 属性指定该字段可以具有的最小值和最大值。例如,给例子指定最小值为 0,最大值为 100:

    <input type="number" placeholder="multiple of 10" step="10" min="0" max="100">
    @@ -118,7 +118,7 @@

    指定最小和最大值

    允许小数值

    -

    数字输入的一个问题是,步长默认为 1——如果你尝试输入带小数的数字,例如"1.0",则它将被视为无效。 如果要输入一个需要小数的值,则需要修改 step 值(例如,step="0.01" 以允许 2 位小数)。 这里有一个简单的例子:

    +

    数字输入的一个问题是,步长默认为 1——如果你尝试输入带小数的数字,例如"1.0",则它将被视为无效。如果要输入一个需要小数的值,则需要修改 step 值(例如,step="0.01" 以允许 2 位小数)。这里有一个简单的例子:

    <input type="number" placeholder="1.0" step="0.01" min="0" max="10">
    diff --git a/files/zh-cn/web/html/element/input/password/index.html b/files/zh-cn/web/html/element/input/password/index.html index b9b09bf0921799..06eb5038bf867e 100644 --- a/files/zh-cn/web/html/element/input/password/index.html +++ b/files/zh-cn/web/html/element/input/password/index.html @@ -42,7 +42,7 @@

    -

    The {{htmlattrxref("value", "input")}} attribute contains a {{domxref("DOMString")}} whose value is the current contents of the text editing control being used to enter the password. 如果用户还没有输入任何内容,则此值为空字符串(“”)。 If the {{htmlattrxref("required")}} property is specified, then the password edit box must contain a value other than an empty string to be valid.

    +

    The {{htmlattrxref("value", "input")}} attribute contains a {{domxref("DOMString")}} whose value is the current contents of the text editing control being used to enter the password. 如果用户还没有输入任何内容,则此值为空字符串(“”)。If the {{htmlattrxref("required")}} property is specified, then the password edit box must contain a value other than an empty string to be valid.

    If the {{htmlattrxref("pattern", "input")}} attribute is specified, the content of a "password" control is only considered valid if the value passes validation; see Validation for more information.

    @@ -69,13 +69,13 @@

    允许自动补全

    "on"
    -
    允许浏览器或密码管理器自动填写密码字段。 这不像使用 “current-password” 或 “new-password” 那样提供信息。
    +
    允许浏览器或密码管理器自动填写密码字段。这不像使用“current-password”或“new-password”那样提供信息。
    "off"
    -
    不让浏览器或密码管理器自动填写密码字段。 请注意,某些软件会忽略此值,因为它通常会损害用户维护安全密码操作的能力。
    +
    不让浏览器或密码管理器自动填写密码字段。请注意,某些软件会忽略此值,因为它通常会损害用户维护安全密码操作的能力。
    "current-password"
    -
    允许浏览器或密码管理器输入网站的当前密码。 这提供了比 “on” 更多的信息,因为它允许浏览器或密码管理器自动在该字段中输入当前已知的网站密码,但不建议新密码。
    +
    允许浏览器或密码管理器输入网站的当前密码。这提供了比“on”更多的信息,因为它允许浏览器或密码管理器自动在该字段中输入当前已知的网站密码,但不建议新密码。
    "new-password"
    -
    允许浏览器或密码管理器自动输入网站的新密码; 这用于 “更改密码” 和 “新用户” 表单,在该字段询问用户新密码。 新密码可能以多种方式生成,具体取决于使用的密码管理器。 它可能只是填写新的建议密码,或者它可能会向用户显示创建密码的界面。
    +
    允许浏览器或密码管理器自动输入网站的新密码; 这用于“更改密码”和“新用户”表单,在该字段询问用户新密码。新密码可能以多种方式生成,具体取决于使用的密码管理器。它可能只是填写新的建议密码,或者它可能会向用户显示创建密码的界面。
    @@ -97,7 +97,7 @@

    让密码必须输入

    指定输入模式

    -

    If your recommended (or required) password syntax rules would benefit from an alternate text entry interface than the standard keyboard, you can use the {{htmlattrxref("inputmode", "input")}} attribute to request a specific one. 最明显的用例是密码必须是数字(例如 PIN)。 例如,带有虚拟键盘的移动设备可能会选择切换到数字键盘布局而不是全键盘,以便更轻松地输入密码。

    +

    If your recommended (or required) password syntax rules would benefit from an alternate text entry interface than the standard keyboard, you can use the {{htmlattrxref("inputmode", "input")}} attribute to request a specific one. 最明显的用例是密码必须是数字(例如 PIN)。例如,带有虚拟键盘的移动设备可能会选择切换到数字键盘布局而不是全键盘,以便更轻松地输入密码。

    <label for="pin">PIN: </label>
     <input id="pin" type="password" inputmode="numeric">
    @@ -154,7 +154,7 @@

    验证

    {{htmlattrdef("disabled")}}
    -

    此布尔属性指示密码字段不可用于交互。 此外,禁用的字段值不会与表单一起提交。

    +

    此布尔属性指示密码字段不可用于交互。此外,禁用的字段值不会与表单一起提交。

    @@ -162,7 +162,7 @@

    实例

    申请社会安全号码

    -

    此示例仅接受与有效的美国社会安全号码格式相匹配的输入。这些用于美国税务和识别目的的数字的格式为 “123-45-6789”。 还存在针对每个组中允许的值的各种规则。

    +

    此示例仅接受与有效的美国社会安全号码格式相匹配的输入。这些用于美国税务和识别目的的数字的格式为“123-45-6789”。还存在针对每个组中允许的值的各种规则。

    HTML 版本的实例

    @@ -174,7 +174,7 @@

    HTML 版本的实例

    <label for="ssn">Value:</label> <span id="current"></span> -

    This uses a {{htmlattrxref("pattern", "input")}} which limits the entered value to strings representing legal Socal Security numbers. 很显然,这个正则表达式并不能保证有效的 SSN(因为我们没有进入社会保障局的数据库),但它确实保证数量可能是一个号; 它通常会避免无效的值。 此外,它允许三组数字由空格,短划线(“ - ”)分隔,或者什么也不分。

    +

    This uses a {{htmlattrxref("pattern", "input")}} which limits the entered value to strings representing legal Socal Security numbers. 很显然,这个正则表达式并不能保证有效的 SSN(因为我们没有进入社会保障局的数据库),但它确实保证数量可能是一个号; 它通常会避免无效的值。此外,它允许三组数字由空格,短划线(“ - ”)分隔,或者什么也不分。

    Isn't that regular expression just beautiful?

    @@ -184,7 +184,7 @@

    HTML 版本的实例

    JavaScript 版本的实例

    -

    这只是一些简单的代码,用于在屏幕上显示输入的 SSN,以便您可以看到它。 显然这会破坏密码字段的目的,但它有助于试验模式。

    +

    这只是一些简单的代码,用于在屏幕上显示输入的 SSN,以便您可以看到它。显然这会破坏密码字段的目的,但它有助于试验模式。

    var ssn = document.getElementById("ssn");
     var current = document.getElementById("current");
    diff --git a/files/zh-cn/web/html/element/input/radio/index.html b/files/zh-cn/web/html/element/input/radio/index.html
    index 47e11473a5b644..7852c18ff10691 100644
    --- a/files/zh-cn/web/html/element/input/radio/index.html
    +++ b/files/zh-cn/web/html/element/input/radio/index.html
    @@ -82,7 +82,7 @@ 

    定义一个单选按钮组 +

    你可以在这里看到三个单选按钮,每个按钮的 name 属性都设置为 contact 并且都含有在单选按钮组中唯一的 value 属性。每一个单选按钮也有一个给{{HTMLElement("label")}} 元素的 {{htmlattrxref("for", "label")}}属性使用的{{domxref("Element.id", "id")}},将 label 元素和点选按钮关联。

    译者注:你可以用 label 元素把 input 元素包裹起来,以减少 id 的使用。

    diff --git a/files/zh-cn/web/html/element/input/range/index.html b/files/zh-cn/web/html/element/input/range/index.html index 35fb650b829dc1..ee3e9d09db4c2e 100644 --- a/files/zh-cn/web/html/element/input/range/index.html +++ b/files/zh-cn/web/html/element/input/range/index.html @@ -12,7 +12,7 @@ ---
    {{HTMLRef}}
    -

    {{HTMLElement("input")}}  range 类型的元素允许用户指定一个数值,该数值必须不小于给定值,并且不得大于另一个给定值。但是,精确值并不重要。通常使用滑块或拨号控件而不是像 {{HTMLElement('input/number', 'number')}}  输入类型这样的文本输入框来表示。 由于这种小部件不精确,因此除非控件的确切值不重要,否则通常不应使用它。

    +

    {{HTMLElement("input")}}  range 类型的元素允许用户指定一个数值,该数值必须不小于给定值,并且不得大于另一个给定值。但是,精确值并不重要。通常使用滑块或拨号控件而不是像 {{HTMLElement('input/number', 'number')}}  输入类型这样的文本输入框来表示。由于这种小部件不精确,因此除非控件的确切值不重要,否则通常不应使用它。

    {{EmbedInteractiveExample("pages/tabbed/input-range.html", "tabbed-standard")}}
    @@ -46,7 +46,7 @@

    验证方式

    -

    没有可用的模式验证。 但是,执行以下形式的自动验证:

    +

    没有可用的模式验证。但是,执行以下形式的自动验证:

    -

    通常,如果用户对最小值和最大值之间的距离的百分比比实际数字本身更感兴趣,则范围输入是一个不错的选择。 例如,在家庭立体声音量控制的情况下,用户通常认为 “将音量设置为最大音量的一半” 而不是 “将音量设置为 0.5”。

    +

    通常,如果用户对最小值和最大值之间的距离的百分比比实际数字本身更感兴趣,则范围输入是一个不错的选择。例如,在家庭立体声音量控制的情况下,用户通常认为“将音量设置为最大音量的一半”而不是“将音量设置为 0.5”。

    指定最小和最大

    -

    默认情况下,最小值为 0,最大值为 100。如果这不是您想要的值,则可以通过更改 {{htmlattrxref("min", "input")}} 和/或 {{htmlattrxref("max", "input")}} 属性。 这些可以是任何浮点值。

    +

    默认情况下,最小值为 0,最大值为 100。如果这不是您想要的值,则可以通过更改 {{htmlattrxref("min", "input")}} 和/或 {{htmlattrxref("max", "input")}} 属性。这些可以是任何浮点值。

    -

    例如,要要求用户输入介于-10 和 10 之间的值,可以使用:

    +

    例如,要要求用户输入介于 -10 和 10 之间的值,可以使用:

    <input type="range" min="-10" max="10">
    @@ -170,7 +170,7 @@

    指定最小和最大

    设置值的粒度

    -

    默认情况下,粒度为 1,表示该值始终是整数。 您可以更改 {{htmlattrxref("step")}} 属性以控制粒度。 例如,如果您需要一个介于 5 到 10 之间的值(精确到两位小数),则应将 step 的值设置为 0.01:

    +

    默认情况下,粒度为 1,表示该值始终是整数。您可以更改 {{htmlattrxref("step")}} 属性以控制粒度。例如,如果您需要一个介于 5 到 10 之间的值(精确到两位小数),则应将 step 的值设置为 0.01:

    <input type="range" min="5" max="10" step="0.01">
    @@ -190,7 +190,7 @@

    设置值的粒度

    添加井号和标签

    -

    HTML 规范使浏览器在如何显示范围控件方面具有一定的灵活性。 在散列标记和较小程度上的标签方面,这种灵活性最明显。 该规范描述了如何使用 {{htmlattrxref("list", "input")}} 属性和 {{HTMLElement("datalist")}} 元素将自定义点添加到范围控件,但没有任何要求或 甚至是沿控件长度的标准化哈希或刻度线的建议。

    +

    HTML 规范使浏览器在如何显示范围控件方面具有一定的灵活性。在散列标记和较小程度上的标签方面,这种灵活性最明显。该规范描述了如何使用 {{htmlattrxref("list", "input")}} 属性和 {{HTMLElement("datalist")}} 元素将自定义点添加到范围控件,但没有任何要求或 甚至是沿控件长度的标准化哈希或刻度线的建议。

    范围控制模型

    @@ -227,7 +227,7 @@
    无装饰的范围控制
    带散列标记的范围控件
    -

    此范围控件使用的 list 属性指定{{HTMLElement("datalist")}} 的 ID,该 ID 定义了控件上的一系列带散列的标记。 其中有 11 个,因此在 0%和每个 10%标记处都有一个。 每个点均使用 {{HTMLElement("option")}} 元素表示,其元素 {{htmlattrxref("value", "option")}} 设置为应绘制标记的范围值。

    +

    此范围控件使用的 list 属性指定{{HTMLElement("datalist")}} 的 ID,该 ID 定义了控件上的一系列带散列的标记。 其中有 11 个,因此在 0%和每个 10%标记处都有一个。每个点均使用 {{HTMLElement("option")}} 元素表示,其元素 {{htmlattrxref("value", "option")}} 设置为应绘制标记的范围值。

    内容类别流式内容, 标题内容,可触知的内容。流式内容,标题内容,可触知的内容。
    允许内容
    multiple email, file布尔值。 是否允许多个值布尔值。是否允许多个值
    name
    @@ -320,7 +320,7 @@
    具有散列标记和标签

    改变方向

    -

    使旋钮向左和向右滑动。 如果支持,我们将能够声明垂直高度,并通过声明高度值大于宽度值来使用 CSS 上下滑动。 任何主要的浏览器实际上尚未实现此功能。(请参阅{{bug(981916)}}, Chrome bug 341071)。也许它仍在讨论中。

    +

    使旋钮向左和向右滑动。如果支持,我们将能够声明垂直高度,并通过声明高度值大于宽度值来使用 CSS 上下滑动。任何主要的浏览器实际上尚未实现此功能。(请参阅{{bug(981916)}}, Chrome bug 341071)。也许它仍在讨论中。

    同时,我们可以通过使用 CSS 变换旋转范围来使范围垂直,或者通过使用各自的方法定位每个浏览器引擎,包括通过将 {{cssxref('appearance')}} 设置为 slider-vertical, 在 Firefox 中使用非标准的orient 属性,或通过更改 Internet Explorer 和 Edge 的文本方向。

    @@ -360,7 +360,7 @@

    结果

    变换:旋转(-90deg)

    -

    但是,您可以通过在侧面绘制水平范围控件来创建垂直范围控件。 最简单的方法是使用 CSS:通过应用 {{cssxref("transform")}} 旋转元素,可以使其垂直。 让我们来看看。

    +

    但是,您可以通过在侧面绘制水平范围控件来创建垂直范围控件。最简单的方法是使用 CSS:通过应用 {{cssxref("transform")}} 旋转元素,可以使其垂直。让我们来看看。

    HTML

    @@ -372,7 +372,7 @@

    HTML

    CSS

    -

    现在我们需要一些 CSS。 首先是包装器本身的 CSS; 这指定了我们想要的显示模式和大小,以便页面正确布局; 本质上,它是为滑块保留页面的区域,以便旋转的滑块适合保留的空间而不会造成混乱。

    +

    现在我们需要一些 CSS。首先是包装器本身的 CSS;这指定了我们想要的显示模式和大小,以便页面正确布局;本质上,它是为滑块保留页面的区域,以便旋转的滑块适合保留的空间而不会造成混乱。

    .slider-wrapper {
       display: inline-block;
    @@ -392,7 +392,7 @@ 

    CSS

    transform: rotate(-90deg); }
    -

    控件的大小设置为 150 像素长 x 20 像素高。 边距设置为 0, {{cssxref("transform-origin")}} 移至滑块旋转通过的空间的中间; 由于滑块配置为 150 像素宽,因此它将旋转通过每边 150 像素的框。 在每个轴上将原点偏移 75 像素,这意味着我们将围绕该空间的中心旋转。 最后,我们将逆时针旋转 90°。 结果:旋转一个范围输入,因此最大值在顶部,最小值在底部。

    +

    控件的大小设置为 150 像素长 x 20 像素高。边距设置为 0, {{cssxref("transform-origin")}} 移至滑块旋转通过的空间的中间;由于滑块配置为 150 像素宽,因此它将旋转通过每边 150 像素的框。在每个轴上将原点偏移 75 像素,这意味着我们将围绕该空间的中心旋转。最后,我们将逆时针旋转 90°。结果:旋转一个范围输入,因此最大值在顶部,最小值在底部。

    {{EmbedLiveSample("transform_rotate-90deg", 200, 200, "https://mdn.mozillademos.org/files/14987/Orientation_sample3.png")}}

    diff --git a/files/zh-cn/web/html/element/input/reset/index.html b/files/zh-cn/web/html/element/input/reset/index.html index b7b59b3dc2d90e..ead2642c51754c 100644 --- a/files/zh-cn/web/html/element/input/reset/index.html +++ b/files/zh-cn/web/html/element/input/reset/index.html @@ -18,7 +18,7 @@
    -

    您通常应该尽量避免在表单中包含重置按钮。 它们很少有实用性,事实上更有可能使用户误点而感到沮丧(通常是在尝试单击 “提交” 按钮时)。

    +

    您通常应该尽量避免在表单中包含重置按钮。它们很少有实用性,事实上更有可能使用户误点而感到沮丧(通常是在尝试单击“提交”按钮时)。

    @@ -56,7 +56,7 @@

    {{EmbedLiveSample("summary-example3", 650, 30)}}

    -

    如果您未指定 value,则会获得一个带有默认标签的按钮(通常为 “重置”,但这将根据 {{Glossary("user agent")}} 而有所不同:

    +

    如果您未指定 value,则会获得一个带有默认标签的按钮(通常为“重置”,但这将根据 {{Glossary("user agent")}} 而有所不同:

    <input type="reset">
    @@ -66,7 +66,7 @@

    使用重置按钮

    -

    <input type =“ reset”> 按钮用于重置表单。 如果您要创建自定义按钮,则使用 JavaScript 自定义行为,您需要使用 <input type="button">,或者最好使用 {{htmlelement("button")}} 元素。

    +

    <input type =“ reset”> 按钮用于重置表单。如果您要创建自定义按钮,则使用 JavaScript 自定义行为,您需要使用 <input type="button">,或者最好使用 {{htmlelement("button")}} 元素。

    一个简单的重置按钮

    @@ -93,7 +93,7 @@

    添加重置键盘快捷键

    添加键盘快捷键到提交按钮 — 就像您使用 {{HTMLElement("input")}} 一样做一些事情 — 请使用 {{htmlattrxref("accesskey")}} 全局属性。

    -

    在这个例子中, r 被指定为访问键(您需要按 r 键与浏览器或操作系统的特定键相组合; 关于这些命令请参见 {{htmlattrxref("accesskey")}} )。

    +

    在这个例子中, r 被指定为访问键(您需要按 r 键与浏览器或操作系统的特定键相组合;关于这些命令请参见 {{htmlattrxref("accesskey")}} )。

    <form>
       <div>
    @@ -130,7 +130,7 @@ 

    验证方式

    例子

    -

    我们在上面已经提供了一些简单的示例。 实际上关于重置按钮并没有更多的内容了。

    +

    我们在上面已经提供了一些简单的示例。实际上关于重置按钮并没有更多的内容了。

    技术规格

    diff --git a/files/zh-cn/web/html/element/input/search/index.html b/files/zh-cn/web/html/element/input/search/index.html index 63f36541077378..7371b4d21f6920 100644 --- a/files/zh-cn/web/html/element/input/search/index.html +++ b/files/zh-cn/web/html/element/input/search/index.html @@ -17,7 +17,7 @@
    {{EmbedInteractiveExample("pages/tabbed/input-search.html", "tabbed-standard")}}
    - +
    @@ -46,7 +46,7 @@

    -

    {{htmlattrxref("value", "input")}} 属性包含 {{domxref("DOMString")}} 代表搜索字段中包含的值。 您可以在 JavaScript 使用 {{domxref("HTMLInputElement.value")}} 属性。

    +

    {{htmlattrxref("value", "input")}} 属性包含 {{domxref("DOMString")}} 代表搜索字段中包含的值。您可以在 JavaScript 使用 {{domxref("HTMLInputElement.value")}} 属性。

    searchTerms = mySearch.value;
     
    @@ -104,13 +104,13 @@

    其他属性

    maxlength

    -

    用户可以在搜索字段中输入的最大字符数(以 UTF-16 代码为单位)。 必须为 0 或更高的整数。 如果未指定 maxlength 或指定了无效值,则搜索字段没有最大长度。 此值还必须大于或等于 minlength 的值。

    +

    用户可以在搜索字段中输入的最大字符数(以 UTF-16 代码为单位)。必须为 0 或更高的整数。如果未指定 maxlength 或指定了无效值,则搜索字段没有最大长度。此值还必须大于或等于 minlength 的值。

    如果输入到字段中的文本的长度大于 maxlength UTF-16 代码单元的长度,则输入无法通过约束验证(constraint validation)。

    minlength

    -

    用户可以在搜索字段中输入的最小字符数(以 UTF-16 代码为单位)。 该值必须是小于或等于 maxlength 指定的值的非负整数值。 如果未指定 minlength 或指定了无效值,则搜索输入没有最小长度。

    +

    用户可以在搜索字段中输入的最小字符数(以 UTF-16 代码为单位)。该值必须是小于或等于 maxlength 指定的值的非负整数值。如果未指定 minlength 或指定了无效值,则搜索输入没有最小长度。

    如果在字段中输入的文本的长度小于 minlength UTF-16 代码单元的长度,则搜索字段将无法通过约束验证(constraint validation)。

    @@ -132,7 +132,7 @@

    spellcheck

    非标准属性

    -

    以下非标准属性可用于搜索输入字段。 通常,除非没有帮助,否则应避免使用它们。

    +

    以下非标准属性可用于搜索输入字段。通常,除非没有帮助,否则应避免使用它们。

    @@ -152,7 +152,7 @@

    非标准属性

    - + @@ -168,7 +168,7 @@

    autocorrect

    incremental

    -

    布尔值 incremental 属性是 WebKit 和 Blink 扩展 (因此被 Safari, Opera, Chrome 等支持)如果存在,它会告诉 {{Glossary("user agent")}} 将输入作为实时搜索进行处理。 当用户编辑字段的值时,用户代理将 {{event("search")}} 事件发送到代表搜索框的 {{domxref("HTMLInputElement")}} 对象。这允许您的代码在用户编辑搜索时实时更新搜索结果。

    +

    布尔值 incremental 属性是 WebKit 和 Blink 扩展 (因此被 Safari, Opera, Chrome 等支持)如果存在,它会告诉 {{Glossary("user agent")}} 将输入作为实时搜索进行处理。当用户编辑字段的值时,用户代理将 {{event("search")}} 事件发送到代表搜索框的 {{domxref("HTMLInputElement")}} 对象。这允许您的代码在用户编辑搜索时实时更新搜索结果。

    如果 incremental 没有被指定,则仅当用户显式启动搜索时(例如,在编辑字段时按 Enter 或 Return )才发送 {{event("search")}} 事件。

    @@ -184,12 +184,12 @@

    results

    results 属性是一个数字值(仅受 Safari 支持),可让您覆盖要在 {{HTMLElement("input")}} 元素的本机提供的先前搜索查询的下拉菜单中显示的最大条目数。

    -

    该值必须是非负十进制数字。 如果未提供或给出了无效值,则使用浏览器的默认最大条目数。

    +

    该值必须是非负十进制数字。如果未提供或给出了无效值,则使用浏览器的默认最大条目数。

    使用搜索输入

    -

    <input> 元素 search 类型与 text 类型的元素非常相似,不同之处在于它们专门用于处理搜索项。 它们的行为基本相同,但是用户代理可以默认选择不同的样式(当然,站点可以使用样式表向其应用自定义样式)。

    +

    <input> 元素 search 类型与 text 类型的元素非常相似,不同之处在于它们专门用于处理搜索项。它们的行为基本相同,但是用户代理可以默认选择不同的样式(当然,站点可以使用样式表向其应用自定义样式)。

    基本例子

    @@ -212,11 +212,11 @@

    基本例子

    搜索类型和文本类型之间的差异

    -

    主要的基本区别在于浏览器处理它们的方式。 首先要注意的是,某些浏览器显示一个十字图标,如果需要,可以单击该十字图标以立即删除搜索词。 以下屏幕截图来自 Chrome:

    +

    主要的基本区别在于浏览器处理它们的方式。首先要注意的是,某些浏览器显示一个十字图标,如果需要,可以单击该十字图标以立即删除搜索词。以下屏幕截图来自 Chrome:

    -

    此外,现代浏览器还倾向于自动存储先前在各个域中输入的搜索词,然后在该域的搜索输入中执行后续搜索时,这些搜索词会作为自动完成选项出现。 这有助于随着时间的流逝倾向于在相同或相似搜索查询上进行搜索的用户。 此屏幕截图来自 Firefox:

    +

    此外,现代浏览器还倾向于自动存储先前在各个域中输入的搜索词,然后在该域的搜索输入中执行后续搜索时,这些搜索词会作为自动完成选项出现。这有助于随着时间的流逝倾向于在相同或相似搜索查询上进行搜索的用户。此屏幕截图来自 Firefox:

    现在,让我们看看可以应用于搜索表单的一些有用的技巧。

    @@ -238,9 +238,9 @@

    设置占位符

    搜索表单标签和辅助功能

    -

    搜索表单的一个问题是它们的可访问性。 常见的设计惯例是不为搜索字段提供标签(尽管可能会有放大镜图标或类似图标),因为由于放置位置的原因,搜索表单的目的通常对于视力正常的用户而言相当明显(这个例子展示了一个典型的模式)。

    +

    搜索表单的一个问题是它们的可访问性。常见的设计惯例是不为搜索字段提供标签(尽管可能会有放大镜图标或类似图标),因为由于放置位置的原因,搜索表单的目的通常对于视力正常的用户而言相当明显(这个例子展示了一个典型的模式)。

    -

    但是,这可能会使屏幕阅读器用户感到困惑,因为他们不会对搜索输入内容有任何口头指示。 解决此问题而不会影响您的视觉设计的一种方法是使用 WAI-ARIA 功能:

    +

    但是,这可能会使屏幕阅读器用户感到困惑,因为他们不会对搜索输入内容有任何口头指示。解决此问题而不会影响您的视觉设计的一种方法是使用 WAI-ARIA 功能:

    • <form> 元素上, search 值的 role 属性 使屏幕阅读器用户声明该表单是搜索表单。
    • @@ -270,7 +270,7 @@

      搜索表单标签和辅助功能

      输入框元素大小 -

      可以使用 {{htmlattrxref("size", "input")}} 属性来控制输入框的尺寸。 使用它,您可以指定输入框一次可以显示的字符数。 例如,在此示例中,搜索框为 30 个字符宽:

      +

      可以使用 {{htmlattrxref("size", "input")}} 属性来控制输入框的尺寸。使用它,您可以指定输入框一次可以显示的字符数。例如,在此示例中,搜索框为 30 个字符宽:

      <form>
         <div>
      @@ -286,10 +286,10 @@ 

      输入框元素大小

      验证方式

      -

      <input> 元素的 search 类型具有与常规文本 text 输入相同的验证功能。 通常,您不太可能希望对搜索框使用验证功能。 在许多情况下,应该只允许用户搜索任何内容,但是有几种情况需要考虑,例如搜索已知格式的数据。

      +

      <input> 元素的 search 类型具有与常规文本 text 输入相同的验证功能。通常,您不太可能希望对搜索框使用验证功能。在许多情况下,应该只允许用户搜索任何内容,但是有几种情况需要考虑,例如搜索已知格式的数据。

      -

      注意:HTML 表单验证不能替代确保输入数据格式正确的脚本。 对于某人来说,对 HTML 进行调整以使其绕过验证或完全删除验证太容易了。 有人也可以完全绕开您的 HTML 并将数据直接提交到您的服务器。 如果服务器端代码无法验证接收到的数据,则当将格式不正确的数据(或太大,类型错误的数据等等)输入数据库时,灾难可能会发生。

      +

      注意:HTML 表单验证不能替代确保输入数据格式正确的脚本。对于某人来说,对 HTML 进行调整以使其绕过验证或完全删除验证太容易了。有人也可以完全绕开您的 HTML 并将数据直接提交到您的服务器。如果服务器端代码无法验证接收到的数据,则当将格式不正确的数据(或太大,类型错误的数据等等)输入数据库时,灾难可能会发生。

      样式注意事项

      @@ -308,7 +308,7 @@

      样式注意事项

      position: absolute; }
      -

      该技巧还需要将 {{htmlelement("span")}} 元素放置在form元素之后,该form元素充当图标的持有者。 这是必要的,因为某些浏览器上的某些输入类型不能很好地显示直接位于其后的图标。

      +

      该技巧还需要将 {{htmlelement("span")}} 元素放置在form元素之后,该form元素充当图标的持有者。这是必要的,因为某些浏览器上的某些输入类型不能很好地显示直接位于其后的图标。

      输入要求

      @@ -345,15 +345,15 @@

      输入要求

      {{ EmbedLiveSample('Making_input_required', 600, 40) }}

      -

      另外,如果您尝试在未输入搜索词的情况下提交表单,浏览器将显示一条消息。 以下示例来自 Firefox:

      +

      另外,如果您尝试在未输入搜索词的情况下提交表单,浏览器将显示一条消息。以下示例来自 Firefox:

      form field with attached message that says Please fill out this field

      -

      当您尝试使用输入中包含的不同类型的无效数据提交表单时,将显示不同的消息; 请参阅以下示例。

      +

      当您尝试使用输入中包含的不同类型的无效数据提交表单时,将显示不同的消息;请参阅以下示例。

      输入值长度

      -

      您可以使用 {{htmlattrxref("minlength", "input")}} 属性为输入的值指定最小长度(以字符为单位); 同样,使用 {{htmlattrxref("maxlength", "input")}} 设置输入值的最大长度。

      +

      您可以使用 {{htmlattrxref("minlength", "input")}} 属性为输入的值指定最小长度(以字符为单位);同样,使用 {{htmlattrxref("maxlength", "input")}} 设置输入值的最大长度。

      下面的示例要求输入的值的长度为 4–8 个字符。

      @@ -390,13 +390,13 @@

      输入值长度

      {{ EmbedLiveSample('Input_value_length', 600, 40) }}

      -

      如果您尝试提交少于 4 个字符的表单,则会收到相应的错误消息(不同的浏览器会有所不同)。 如果尝试超过 8 个字符,浏览器将不允许您访问。

      +

      如果您尝试提交少于 4 个字符的表单,则会收到相应的错误消息(不同的浏览器会有所不同)。如果尝试超过 8 个字符,浏览器将不允许您访问。

      指定模式

      您可以使用 {{htmlattrxref("pattern", "input")}} 属性指定一个正则表达式,输入值必须遵循该正则表达式才能被视为有效 (请参照 Validating against a regular expression).

      -

      让我们看一个例子。 假设我们想提供一个产品 ID 搜索表格,这些 ID 都是由两个字母和四个数字组成的代码。 以下示例对此进行了介绍:

      +

      让我们看一个例子。假设我们想提供一个产品 ID 搜索表格,这些 ID 都是由两个字母和四个数字组成的代码。以下示例对此进行了介绍:

      <form>
         <div>
      diff --git a/files/zh-cn/web/html/element/input/submit/index.html b/files/zh-cn/web/html/element/input/submit/index.html
      index 4d874b2be5e274..67d8673ed4b8bc 100644
      --- a/files/zh-cn/web/html/element/input/submit/index.html
      +++ b/files/zh-cn/web/html/element/input/submit/index.html
      @@ -80,7 +80,7 @@ 

      额外属性值

    - + @@ -103,19 +103,19 @@

    额外属性值

    formaction

    -

    一个字符串,指示要将数据提交到的 URL。 这优先于拥有 {{HTMLElement("input")}} 的 {{HTMLElement("form")}} 元素上的 {{htmlattrxref("action", "form")}} 属性。

    +

    一个字符串,指示要将数据提交到的 URL。这优先于拥有 {{HTMLElement("input")}} 的 {{HTMLElement("form")}} 元素上的 {{htmlattrxref("action", "form")}} 属性。

    此属性在 <input type="image"> 元素和{{HTMLElement("button")}} 元素上也可用。

    formenctype

    -

    一个字符串,标识在将表单数据提交到服务器时要使用的编码方法。 有三个允许的值:

    +

    一个字符串,标识在将表单数据提交到服务器时要使用的编码方法。有三个允许的值:

    application/x-www-form-urlencoded
    这是默认值,它使用 {{jsxref("encodeURI", "encodeURI()")}} 之类的算法对文本进行 URL 编码后,以字符串形式发送表单数据。
    multipart/form-data
    -
    使用 {{domxref("FormData")}} API 来管理数据,从而允许将文件提交到服务器。 如果您的表单包含 {{htmlattrxref("type", "input")}} file (<input type="file">) 的任何 {{HTMLElement("input")}} 元素,则必须使用此编码类型。
    +
    使用 {{domxref("FormData")}} API 来管理数据,从而允许将文件提交到服务器。如果您的表单包含 {{htmlattrxref("type", "input")}} file (<input type="file">) 的任何 {{HTMLElement("input")}} 元素,则必须使用此编码类型。
    text/plain
    纯文本; 通常仅对调试有用,因此您可以轻松查看要提交的数据。
    @@ -126,13 +126,13 @@

    formenctype

    formmethod

    -

    一个字符串,指示提交表单数据时要使用的 HTTP 方法; 此值将覆盖拥有表单上给出的任何 {{htmlattrxref("method", "form")}} 属性。 允许的值为:

    +

    一个字符串,指示提交表单数据时要使用的 HTTP 方法;此值将覆盖拥有表单上给出的任何 {{htmlattrxref("method", "form")}} 属性。允许的值为:

    get
    -
    通过从 formaction 或 {{htmlattrxref("action", "form")}} 通过从 ("?") 字符,然后附加表单数据,按照如下所述进行编码来构造 URL 通过 formenctype 或表单的 {{htmlattrxref("enctype", "form")}} 属性。 然后,使用 HTTP {{HTTPMethod("get")}}请求将该 URL 发送到服务器。 此方法适用于仅包含 ASCII 字符且没有副作用的简单形式。 这是默认值。
    +
    通过从 formaction 或 {{htmlattrxref("action", "form")}} 通过从 ("?") 字符,然后附加表单数据,按照如下所述进行编码来构造 URL 通过 formenctype 或表单的 {{htmlattrxref("enctype", "form")}} 属性。然后,使用 HTTP {{HTTPMethod("get")}}请求将该 URL 发送到服务器。此方法适用于仅包含 ASCII 字符且没有副作用的简单形式。这是默认值。
    post
    -
    表单的数据包含在请求的正文中,该请求的正文使用 HTTP {{HTTPMethod("post")}} 发送到由 formaction 或 {{htmlattrxref("action", "form")}} 属性指定的 URL 请求。 此方法支持复杂的数据和文件附件。
    +
    表单的数据包含在请求的正文中,该请求的正文使用 HTTP {{HTTPMethod("post")}} 发送到由 formaction 或 {{htmlattrxref("action", "form")}} 属性指定的 URL 请求。此方法支持复杂的数据和文件附件。
    dialog
    此方法用于指示按钮仅关闭与输入关联的对话框,而根本不传输表单数据。
    @@ -141,25 +141,25 @@

    formmethod

    formnovalidate

    -

    布尔属性,如果存在,则指定在提交给服务器之前不应对表单进行验证。 这将覆盖元素拥有表单上的 {{htmlattrxref("novalidate", "form")}} 属性的值。

    +

    布尔属性,如果存在,则指定在提交给服务器之前不应对表单进行验证。这将覆盖元素拥有表单上的 {{htmlattrxref("novalidate", "form")}} 属性的值。

    此属性在 <input type="image"> 元素和{{HTMLElement("button")}} 元素上也可用。

    formtarget

    -

    一个字符串,它指定一个名称或关键字,该名称或关键字指示提交表单后在何处显示收到的响应。 该字符串必须是浏览上下文的名称 (即选项卡,窗口或 {{HTMLElement("iframe")}}。 此处指定的值将覆盖 {{HTMLElement("form")}} 上拥有此输入的 {{htmlattrxref("target", "form")}} 属性。

    +

    一个字符串,它指定一个名称或关键字,该名称或关键字指示提交表单后在何处显示收到的响应。该字符串必须是浏览上下文的名称 (即选项卡,窗口或 {{HTMLElement("iframe")}}。 此处指定的值将覆盖 {{HTMLElement("form")}} 上拥有此输入的 {{htmlattrxref("target", "form")}} 属性。

    除了选项卡,窗口或嵌入式框架的实际名称之外,还可以使用一些特殊的关键字:

    _self
    -
    将响应加载到与包含表单的浏览上下文相同的浏览上下文中。 这将用接收到的数据替换当前文档。 如果未指定,则使用默认值。
    +
    将响应加载到与包含表单的浏览上下文相同的浏览上下文中。这将用接收到的数据替换当前文档。如果未指定,则使用默认值。
    _blank
    -
    将响应加载到新的未命名浏览上下文中。 这通常是一个与当前文档相同的窗口中的新选项卡,但是根据 {{Glossary("user agent")}} 的配置可能会有所不同。
    +
    将响应加载到新的未命名浏览上下文中。这通常是一个与当前文档相同的窗口中的新选项卡,但是根据 {{Glossary("user agent")}} 的配置可能会有所不同。
    _parent
    -
    将响应加载到当前浏览器的父浏览上下文中。 如果没有父上下文,则其行为与 _self 相同。
    +
    将响应加载到当前浏览器的父浏览上下文中。如果没有父上下文,则其行为与 _self 相同。
    _top
    -
    将响应加载到顶级浏览上下文中; 这是浏览上下文,它是当前上下文的最高级祖先。 如果当前上下文是最顶层的上下文,则其行为与 _self相同。
    +
    将响应加载到顶级浏览上下文中;这是浏览上下文,它是当前上下文的最高级祖先。如果当前上下文是最顶层的上下文,则其行为与 _self相同。

    此属性在 <input type="image"> 元素和{{HTMLElement("button")}} 元素上也可用。

    @@ -195,7 +195,7 @@

    一个简单的提交按钮

    添加提交的快捷键

    -

    键盘快捷键就是使用键盘上的按键,让用户使用按键或组合按键来触发按钮。 为了在提交按钮上添加键盘快捷键— 就像使用任何有实际意义的 {{HTMLElement("input")}} 一样,您可以使用 {{htmlattrxref("accesskey")}} 全局属性。

    +

    键盘快捷键就是使用键盘上的按键,让用户使用按键或组合按键来触发按钮。为了在提交按钮上添加键盘快捷键— 就像使用任何有实际意义的 {{HTMLElement("input")}} 一样,您可以使用 {{htmlattrxref("accesskey")}} 全局属性。

    在此示例中,将 s 指定为访问键 (指定为访问键 s p 键加上浏览器/操作系统组合的特定修饰键。为了避免与用户代理自身的键盘快捷键冲突,请使用不同的修饰键 而不是主机上其他快捷方式的访问键。有关更多详细信息,请参见 {{htmlattrxref("accesskey")}}。

    @@ -212,11 +212,11 @@

    添加提交的快捷键

    </div> </form> -

    例如,在 Mac 版 Firefox 中,按 Control-Option-S 会触发 “发送” 按钮,而 Windows 上的 Chrome 使用 Alt+S.

    +

    例如,在 Mac 版 Firefox 中,按 Control-Option-S 会触发“发送”按钮,而 Windows 上的 Chrome 使用 Alt+S.

    {{EmbedLiveSample("Adding_a_submit_keyboard_shortcut", 650, 100)}}

    -

    上面示例的问题是用户将不知道访问密钥是什么! 尤其如此,因为修饰符通常是非标准的以避免冲突。 在构建网站时,请确保以不干扰网站设计的方式提供此信息(例如,通过提供易于访问的链接来指向有关网站访问密钥的信息)。 向按钮添加工具提示 (使用 {{htmlattrxref("title")}} 属性) 也可以有所帮助,尽管这并不是出于可访问性目的的完整解决方案。

    +

    上面示例的问题是用户将不知道访问密钥是什么!尤其如此,因为修饰符通常是非标准的以避免冲突。在构建网站时,请确保以不干扰网站设计的方式提供此信息(例如,通过提供易于访问的链接来指向有关网站访问密钥的信息)。向按钮添加工具提示 (使用 {{htmlattrxref("title")}} 属性) 也可以有所帮助,尽管这并不是出于可访问性目的的完整解决方案。

    禁用和启用提交按钮

    @@ -226,7 +226,7 @@

    禁用和启用提交按钮

    <input type="submit" value="Disabled" disabled>
    -

    您可以在运行时通过简单地将disable设置为truefalse来启用和禁用按钮。 在 JavaScript 中,这看起来像 btn.disabled = true or btn.disabled = false.

    +

    您可以在运行时通过简单地将disable设置为truefalse来启用和禁用按钮。在 JavaScript 中,这看起来像 btn.disabled = true or btn.disabled = false.

    有关启用和禁用按钮的更多想法,请参见 <input type="button"> 。

    @@ -234,11 +234,11 @@

    禁用和启用提交按钮

    验证方式

    -

    提交按钮不参与约束验证; 他们没有约束的真实价值。

    +

    提交按钮不参与约束验证;他们没有约束的真实价值。

    例子

    -

    我们在上面提供了一些简单的示例。 关于提交按钮,实际上没有什么可说的。 有时将这种控件称为 “简单按钮” 是有原因的。

    +

    我们在上面提供了一些简单的示例。关于提交按钮,实际上没有什么可说的。有时将这种控件称为“简单按钮”是有原因的。

    规范

    diff --git a/files/zh-cn/web/html/element/input/tel/index.html b/files/zh-cn/web/html/element/input/tel/index.html index 88197b05cca074..3c921cd9e19640 100644 --- a/files/zh-cn/web/html/element/input/tel/index.html +++ b/files/zh-cn/web/html/element/input/tel/index.html @@ -14,7 +14,7 @@ ---
    {{HTMLRef}}
    -

    {{HTMLElement("input")}} "tel" 类型的元素用于让用户输入和编辑电话号码。 Unli 不同于<input type="email"> 和 <input type="url"> , 在提交表格之前,输入值不会被自动验证为特定格式,因为世界各地的电话号码格式差别很大。

    +

    {{HTMLElement("input")}} "tel" 类型的元素用于让用户输入和编辑电话号码。Unli 不同于<input type="email"> 和 <input type="url"> , 在提交表格之前,输入值不会被自动验证为特定格式,因为世界各地的电话号码格式差别很大。

    尽管 tel 类型的输入在功能上和 text 输入一致,但它们确实有用; 其中最明显的就是移动浏览器— 特别是在手机上 — 可能会选择提供为输入电话号码而优化的自定义键盘。使用电话号码的特定输入类型也使添加自定义验证和处理电话号码更方便。

    @@ -59,7 +59,7 @@

    使用 tel 输入

    -

    电话号码是网络上非常普遍收集的数据类型。例如,在创建任何类型的注册或电子商务网站时,无论出于商业目的还是出于紧急联系目的,您都可能需要向用户索要电话号码。鉴于通常输入的电话号码是多少,不幸的是,用于验证电话号码的 “一刀切” 解决方案是不实际的。

    +

    电话号码是网络上非常普遍收集的数据类型。例如,在创建任何类型的注册或电子商务网站时,无论出于商业目的还是出于紧急联系目的,您都可能需要向用户索要电话号码。鉴于通常输入的电话号码是多少,不幸的是,用于验证电话号码的“一刀切”解决方案是不实际的。

    幸运的是,您可以考虑自己网站的要求,并自行实施适当的验证级别。有关详细信息,请参阅下面的 验证

    @@ -96,7 +96,7 @@

    一个简单的 tel 输入

    占位字符

    -

    有时候提供关于输入数据应该采用什么形式的上下文提示是很有帮助的。如果页面设计没有为每个{{HTMLElement("input")}}页面提供描述性标签,这可能是特别重要的 。所以需要占位符。一个占位符是一个值,它通过提供一个有效值的例子来演示值的形式,当元素的值是 “” 时,它显示在编辑框中。一旦数据输入框中,占位符消失;如果该框被清空,占位符重新出现。

    +

    有时候提供关于输入数据应该采用什么形式的上下文提示是很有帮助的。如果页面设计没有为每个{{HTMLElement("input")}}页面提供描述性标签,这可能是特别重要的。所以需要占位符。一个占位符是一个值,它通过提供一个有效值的例子来演示值的形式,当元素的值是“”时,它显示在编辑框中。一旦数据输入框中,占位符消失;如果该框被清空,占位符重新出现。

    在这里,我们有"tel" 输入的占位符"123-4567-8901"。请注意占位符如何消失并在编辑字段内容时重新出现。

    diff --git a/files/zh-cn/web/html/element/input/text/index.html b/files/zh-cn/web/html/element/input/text/index.html index 6669ea783697b9..1814ccabdda5d8 100644 --- a/files/zh-cn/web/html/element/input/text/index.html +++ b/files/zh-cn/web/html/element/input/text/index.html @@ -44,7 +44,7 @@

    -

    {{htmlattrxref("value", "input")}} 属性是一个包含了文本框当前文字的{{domxref("DOMString")}}。 你可以在 Javascript 中获取 {{domxref("HTMLInputElement.value")}} 特性的用途。

    +

    {{htmlattrxref("value", "input")}} 属性是一个包含了文本框当前文字的{{domxref("DOMString")}}。你可以在 Javascript 中获取 {{domxref("HTMLInputElement.value")}} 特性的用途。

    let theText = myTextInput.value;
     
    @@ -96,25 +96,25 @@

    其他属性

    maxlength

    -

    用户可以输入文本输入框中的最大字符 (参考 UTF-16 编码单元) 数。 必须为整数,值等于 0 或者更大。 如果没有规定 maxlength , 或者规定的值无效,文本输入框就没有最大值。这个值也必须更大或者等于minlength的值。

    +

    用户可以输入文本输入框中的最大字符 (参考 UTF-16 编码单元) 数。必须为整数,值等于 0 或者更大。如果没有规定 maxlength ,或者规定的值无效,文本输入框就没有最大值。这个值也必须更大或者等于minlength的值。

    -

    如果文本框中的字符数大于 maxlength UTF-16 编码单元,输入框的验证就会失败。 约束验证仅作用于用户输入值的时候。

    +

    如果文本框中的字符数大于 maxlength UTF-16 编码单元,输入框的验证就会失败。约束验证仅作用于用户输入值的时候。

    minlength

    -

    用户可以输入到 text 中的最小字符数(以 UTF-16 代码为单位)。 该值必须是小于或等于 maxlength 指定的值的非负整数值。 如果未指定 minlength 或指定了无效的值,则 text 将没有最小长度。

    +

    用户可以输入到 text 中的最小字符数(以 UTF-16 代码为单位)。该值必须是小于或等于 maxlength 指定的值的非负整数值。如果未指定 minlength 或指定了无效的值,则 text 将没有最小长度。

    如果输入到字段中的文本的长度小于 minlength UTF-16 代码单元的长度,则输入将无法通过约束验证 (constraint validation) 约束验证仅在用户更改值时应用。

    pattern

    -

    如果指定了 pattern 属性,则它是输入的 {{htmlattrxref("value")}} 必须匹配正则表达式,以使该值通过约束验证(constraint validation)。它必须是 {{jsxref("RegExp")}} 类型使用有效 JavaScript 正则表达式,并且已在我们的正则表达式指南(guide on regular expressions)中进行了说明;在编译正则表达式时指定了 'u' 标志,因此该模式被视为 Unicode 代码点的序列,而不是 ASCII。 模式文本周围不能指定正斜杠。

    +

    如果指定了 pattern 属性,则它是输入的 {{htmlattrxref("value")}} 必须匹配正则表达式,以使该值通过约束验证(constraint validation)。它必须是 {{jsxref("RegExp")}} 类型使用有效 JavaScript 正则表达式,并且已在我们的正则表达式指南(guide on regular expressions)中进行了说明;在编译正则表达式时指定了 'u' 标志,因此该模式被视为 Unicode 代码点的序列,而不是 ASCII。模式文本周围不能指定正斜杠。

    如果指定的模式未指定或无效,则不应用任何正则表达式,并且将完全忽略此属性。

    -

    提示:使用 {{htmlattrxref("title", "input")}} 属性指定大多数浏览器将显示为文本的工具提示,以说明与模式匹配的要求。 您还应该在附近添加其他说明性文字。

    +

    提示:使用 {{htmlattrxref("title", "input")}} 属性指定大多数浏览器将显示为文本的工具提示,以说明与模式匹配的要求。您还应该在附近添加其他说明性文字。

    @@ -122,17 +122,17 @@

    pattern

    placeholder

    -

    placeholder 属性是一个字符串,可向用户提供有关该字段中需要什么样的信息的简短提示。 它应该是一个单词或短语来说明预期的数据类型,而不是说明性消息。 文本中不得包含回车符或换行符。

    +

    placeholder 属性是一个字符串,可向用户提供有关该字段中需要什么样的信息的简短提示。它应该是一个单词或短语来说明预期的数据类型,而不是说明性消息。文本中不得包含回车符或换行符。

    如果控件的内容具有一个方向性的 ({{Glossary("LTR")}} 或 {{Glossary("RTL")}}) ,但需要以相反的方向性来显示占位符则可以使用 Unicode 双向算法格式化字符来 在占位符中覆盖方向性;请参见 {{SectionOnPage("/en-US/docs/Web/Localization/Unicode_Bidirectional_Text_Algorithm", "Overriding BiDi using Unicode control characters")}}。

    -

    注意:如果可以,请避免使用占位符属性。 它在语义上没有其他解释表单的方式有用,并且可能导致内容出现意外的问题。 请参见 {{SectionOnPage("/en-US/docs/Web/HTML/Element/input", "Labels and placeholders")}}。

    +

    注意:如果可以,请避免使用占位符属性。它在语义上没有其他解释表单的方式有用,并且可能导致内容出现意外的问题。 请参见 {{SectionOnPage("/en-US/docs/Web/HTML/Element/input", "Labels and placeholders")}}。

    readonly

    -

    一个布尔属性,如果存在,则表示该字段不能由用户编辑。 但是,仍可以通过 JavaScript 代码直接设置 {{domxref("HTMLInputElement.value")}} 属性来更改其 value

    +

    一个布尔属性,如果存在,则表示该字段不能由用户编辑。但是,仍可以通过 JavaScript 代码直接设置 {{domxref("HTMLInputElement.value")}} 属性来更改其 value

    注意:因为只读字段不能有值,所以 required 也对指定了 readonly 属性的输入没有任何影响。

    @@ -140,13 +140,13 @@

    readonly

    size

    -

    size 属性是一个数字值,指示输入字段应有多少个字符宽。 该值必须是一个大于零的数字,默认值是 20。 根据字符和字体 (使用 {{cssxref("font")}} 设置),结果输入可能比指定的字符数窄或宽。

    +

    size 属性是一个数字值,指示输入字段应有多少个字符宽。该值必须是一个大于零的数字,默认值是 20。根据字符和字体 (使用 {{cssxref("font")}} 设置),结果输入可能比指定的字符数窄或宽。

    -

    这并不限制用户可以在该字段中输入多少个字符。 它仅指定一次可以看到多少个。 要设置输入数据长度的上限,使用 maxlength 属性。

    +

    这并不限制用户可以在该字段中输入多少个字符。它仅指定一次可以看到多少个。要设置输入数据长度的上限,使用 maxlength 属性。

    spellcheck

    -

    spellcheck 是一个全局属性,用于指示是否启用元素的拼写检查。 它可以用于任何可编辑的内容,但是这里我们考虑与在 {{HTMLElement("input")}} 元素上使用 spellcheck 细节。则 spellcheck 的允许值为:

    +

    spellcheck 是一个全局属性,用于指示是否启用元素的拼写检查。它可以用于任何可编辑的内容,但是这里我们考虑与在 {{HTMLElement("input")}} 元素上使用 spellcheck 细节。则 spellcheck 的允许值为:

    false
    @@ -154,7 +154,7 @@

    spellcheck

    true
    对此元素启用拼写检查。
    "" (empty string) or no value
    -
    遵循元素的默认行为进行拼写检查。 这可能基于父元素 spellcheck 设置或其他因素。
    +
    遵循元素的默认行为进行拼写检查。这可能基于父元素 spellcheck 设置或其他因素。

    如果输入字段没有设置 readonly 属性且未禁用,则可以启用拼写检查。

    @@ -163,7 +163,7 @@

    spellcheck

    非标准属性

    -

    以下非标准属性在某些浏览器上也可用。 通常应避免使用它们。

    +

    以下非标准属性在某些浏览器上也可用。通常应避免使用它们。

    mozactionhint一个字符串,指示当用户在编辑字段时按 Enter 或 Return 键时将执行的操作类型; 用于确定虚拟键盘上该键的适当标签。Firefox for Android only.一个字符串,指示当用户在编辑字段时按 Enter 或 Return 键时将执行的操作类型;用于确定虚拟键盘上该键的适当标签。Firefox for Android only.
    results
    formaction提交表单数据的 URL; 覆盖表单的{{htmlattrxref("action", "form")}} 属性(如果有)提交表单数据的 URL;覆盖表单的{{htmlattrxref("action", "form")}} 属性(如果有)
    formenctype
    @@ -179,7 +179,7 @@

    非标准属性

    - +
    mozactionhint一个字符串,指示当用户在编辑字段时按 Enter 或 Return 键时将执行的操作类型; 用于确定虚拟键盘上该键的适当标签。 Firefox for Android only.一个字符串,指示当用户在编辑字段时按 Enter 或 Return 键时将执行的操作类型;用于确定虚拟键盘上该键的适当标签。 Firefox for Android only.
    @@ -187,7 +187,7 @@

    非标准属性

    autocorrect

    -

    Safari 扩展, the autocorrect 属性是一个字符串,它指示在用户编辑此字段时是否激活自动更正。 允许的值为:

    +

    Safari 扩展,the autocorrect 属性是一个字符串,它指示在用户编辑此字段时是否激活自动更正。允许的值为:

    on
    @@ -200,10 +200,10 @@

    autocorrect

    mozactionhint

    -

    一个 Mozilla 扩展程序,由 Firefox for Android 支持,它提供了一个提示,提示用户在编辑字段时按 Enter 或 Return 键将采取何种操作。 此信息用于确定在虚拟键盘上的 Enter 键上使用哪种标签。

    +

    一个 Mozilla 扩展程序,由 Firefox for Android 支持,它提供了一个提示,提示用户在编辑字段时按 Enter 或 Return 键将采取何种操作。此信息用于确定在虚拟键盘上的 Enter 键上使用哪种标签。

    -

    注意: 注意:已将其标准化为全局属性 {{htmlattrxref("enterkeyhint")}},但尚未广泛实现。 要查看 Firefox 中正在实施的更改的状态,请参阅 {{bug(1490661)}}.

    +

    注意: 注意:已将其标准化为全局属性 {{htmlattrxref("enterkeyhint")}},但尚未广泛实现。要查看 Firefox 中正在实施的更改的状态,请参阅 {{bug(1490661)}}.

    允许的值为: go, done, next, search, 和 send. 浏览器使用此提示来决定在回车键上放置什么标签。

    @@ -211,7 +211,7 @@

    mozactionhint

    运用文本输入框

    -

    <input> 元素的 text 类型创建基本的单行输入。 您应该在希望用户输入单行值的任何地方使用它们,并且没有更具体的输入类型可用于收集该值 (例如,如果是 date, URL, email, 或 search term, 则表示拥有更好的选择).

    +

    <input> 元素的 text 类型创建基本的单行输入。您应该在希望用户输入单行值的任何地方使用它们,并且没有更具体的输入类型可用于收集该值 (例如,如果是 date, URL, email, 或 search term, 则表示拥有更好的选择).

    基础例子

    @@ -233,7 +233,7 @@

    基础例子

    设置占位符

    -

    您可以在文本输入中提供一个有用的占位符,通过使用 {{htmlattrxref("placeholder","input")}} 属性,可以提示输入内容。 看下面的例子

    +

    您可以在文本输入中提供一个有用的占位符,通过使用 {{htmlattrxref("placeholder","input")}} 属性,可以提示输入内容。看下面的例子

    <form>
       <div>
    @@ -254,7 +254,7 @@ 

    设置占位符

    输入框元素大小

    -

    可以使用 {{htmlattrxref("size", "input")}} 属性来控制输入框的尺寸。 使用它,您可以指定文本输入一次可以显示的字符数。 这会影响元素的宽度,使您可以按字符而不是像素指定宽度。 例如,在此示例中,输入为 30 个字符宽:

    +

    可以使用 {{htmlattrxref("size", "input")}} 属性来控制输入框的尺寸。使用它,您可以指定文本输入一次可以显示的字符数。这会影响元素的宽度,使您可以按字符而不是像素指定宽度。例如,在此示例中,输入为 30 个字符宽:

    <form>
       <div>
    @@ -275,12 +275,12 @@ 

    验证

    <input> 元素的 text 属性没有应用自动验证(因为基本文本输入需要能够接受任意字符串),但是有一些客户端验证选项可用,我们将在下面讨论。

    -

    注意:HTML 表单验证不能替代服务器脚本,以确保输入的数据格式正确。 对于某人来说,对 HTML 进行调整以使其绕过验证或完全删除验证太容易了。 有人也可以完全绕开您的 HTML 并将数据直接提交到您的服务器。 如果服务器端代码无法验证接收到的数据,则当将格式不正确的数据(或太大,类型错误的数据等等)输入数据库时,灾难可能会发生。

    +

    注意:HTML 表单验证不能替代服务器脚本,以确保输入的数据格式正确。对于某人来说,对 HTML 进行调整以使其绕过验证或完全删除验证太容易了。有人也可以完全绕开您的 HTML 并将数据直接提交到您的服务器。如果服务器端代码无法验证接收到的数据,则当将格式不正确的数据(或太大,类型错误的数据等等)输入数据库时,灾难可能会发生。

    样式注意事项

    -

    有一些有用的伪类可用于设置表单元素的样式,以帮助用户查看其值是有效还是无效。 它们是 {{cssxref(":valid")}} 和 {{cssxref(":invalid")}}。 在本节中,我们将使用以下 CSS,它将在包含有效值的输入旁边放置一个复选标记(tick),并在包含无效值的输入旁边放置一个叉号(X)。

    +

    有一些有用的伪类可用于设置表单元素的样式,以帮助用户查看其值是有效还是无效。它们是 {{cssxref(":valid")}} 和 {{cssxref(":invalid")}}。在本节中,我们将使用以下 CSS,它将在包含有效值的输入旁边放置一个复选标记(tick),并在包含无效值的输入旁边放置一个叉号(X)。

    div {
       margin-bottom: 10px;
    @@ -302,7 +302,7 @@ 

    样式注意事项

    padding-left: 5px; }
    -

    该技术还需要将 {{htmlelement("span")}} 元素放置在form元素之后,该form元素充当图标的持有者。 这是必要的,因为某些浏览器上的某些输入类型不能很好地显示直接位于其后的图标。

    +

    该技术还需要将 {{htmlelement("span")}} 元素放置在form元素之后,该form元素充当图标的持有者。这是必要的,因为某些浏览器上的某些输入类型不能很好地显示直接位于其后的图标。

    输入要求

    @@ -331,7 +331,7 @@

    输入要求

    输入值长度

    -

    您可以使用 {{htmlattrxref("minlength", "input")}} 属性指定输入值的最小长度(以字符为单位); 同样,请使用 {{htmlattrxref("maxlength", "input")}} 设置输入值的最大长度(以字符为单位)。

    +

    您可以使用 {{htmlattrxref("minlength", "input")}} 属性指定输入值的最小长度(以字符为单位);同样,请使用 {{htmlattrxref("maxlength", "input")}} 设置输入值的最大长度(以字符为单位)。

    下面的示例要求输入的值的长度为 4–8 个字符。

    @@ -356,7 +356,7 @@

    输入值长度

    {{ EmbedLiveSample('Input_value_length', 600, 70) }}

    -

    如果您尝试提交少于 4 个字符的表单,则会收到一条相应的错误消息(不同的浏览器会有所不同)。 如果您尝试输入 8 个以上的字符,浏览器将不允许您输入。

    +

    如果您尝试提交少于 4 个字符的表单,则会收到一条相应的错误消息(不同的浏览器会有所不同)。如果您尝试输入 8 个以上的字符,浏览器将不允许您输入。

    注意: 如果您指定了 minlength 但未指定 required, 则输入被视为有效,因为不需要用户指定值。

    diff --git a/files/zh-cn/web/html/element/input/time/index.html b/files/zh-cn/web/html/element/input/time/index.html index 75ae64ce31360e..446e7d751b994f 100644 --- a/files/zh-cn/web/html/element/input/time/index.html +++ b/files/zh-cn/web/html/element/input/time/index.html @@ -24,7 +24,7 @@

    Appearance

    Chrome and Opera

    -

    在 chrome/opera 中,选择时间很简单,根据操作系统区域设置,插槽以 12 或 24 小时格式输入小时和分钟,上下箭头用于递增和递减当前选定的组件。在某些版本中,会提供一个 “x” 按钮来清除控件的值。

    +

    在 chrome/opera 中,选择时间很简单,根据操作系统区域设置,插槽以 12 或 24 小时格式输入小时和分钟,上下箭头用于递增和递减当前选定的组件。在某些版本中,会提供一个“x”按钮来清除控件的值。

    12-hour Chrome time input 12-hour

    @@ -32,7 +32,7 @@

    Chrome and Opera

    Firefox

    -

    火狐的时间选择和 Chrome 非常相似,只是它没有上下箭头。它还使用 12 或 24 小时格式输入时间,基于系统区域设置。提供 “X” 按钮以清除控件的值。

    +

    火狐的时间选择和 Chrome 非常相似,只是它没有上下箭头。它还使用 12 或 24 小时格式输入时间,基于系统区域设置。提供“X”按钮以清除控件的值。

    12-hour Firefox time input 12-hour

    diff --git a/files/zh-cn/web/html/element/input/week/index.html b/files/zh-cn/web/html/element/input/week/index.html index 0c89106556da2f..50c5a2e770437b 100644 --- a/files/zh-cn/web/html/element/input/week/index.html +++ b/files/zh-cn/web/html/element/input/week/index.html @@ -15,11 +15,11 @@
    {{EmbedInteractiveExample("pages/tabbed/input-week.html", "tabbed-shorter")}}
    - + -

    控件的用户界面因浏览器而异; 跨浏览器的支持目前受到限制,目前只有 Chrome / Opera 和 Microsoft Edge 支持。 在不支持的浏览器中,该控件会正常降级,使其功能与 <input type="text">相同。

    +

    控件的用户界面因浏览器而异;跨浏览器的支持目前受到限制,目前只有 Chrome / Opera 和 Microsoft Edge 支持。在不支持的浏览器中,该控件会正常降级,使其功能与 <input type="text">相同。

    -

      在 Chrome / Opera 中,在week控件提供了用于填写周和年值的插槽,弹出式日历界面(可以更直观地选择它们)以及 “ X” 按钮以清除控件的值。

    +

      在 Chrome / Opera 中,在week控件提供了用于填写周和年值的插槽,弹出式日历界面(可以更直观地选择它们)以及“X”按钮以清除控件的值。

    @@ -63,7 +63,7 @@

    {{EmbedLiveSample('Value', 600, 60)}}

    -

    要注意的一件事是,显示的格式可能与value不同,后者始终采用 yyyy-Www格式。 例如,当将上述值提交给服务器时,浏览器可能会将其显示为 Week 01, 2017, 但是提交的值始终看起来像week=2017-W01.

    +

    要注意的一件事是,显示的格式可能与value不同,后者始终采用 yyyy-Www格式。例如,当将上述值提交给服务器时,浏览器可能会将其显示为 Week 01, 2017, 但是提交的值始终看起来像week=2017-W01.

    您还可以使用输入元素的 {{domxref("HTMLInputElement.value", "value")}} 属性获取并设置 JavaScript 中的值,例如:

    @@ -103,13 +103,13 @@

    其他属性

    max

    -

    接受以上 部分中讨论的字符串格式的最新(按时间)年份和星期数。 如果输入到元素中的 {{htmlattrxref("value", "input")}} 超过此值,则元素将无法通过约束验证。 如果max属性的值不是有效的周字符串,则该元素没有最大值。

    +

    接受以上 部分中讨论的字符串格式的最新(按时间)年份和星期数。如果输入到元素中的 {{htmlattrxref("value", "input")}} 超过此值,则元素将无法通过约束验证。如果max属性的值不是有效的周字符串,则该元素没有最大值。

    此值必须大于或等于min 属性指定的年和周。

    min

    -

    最早接受的年和周。 如果元素的 {{htmlattrxref("value", "input")}}小于此值,则该元素将无法通过 约束验证。 如果为min指定的值不是有效的星期字符串,则输入没有最小值。

    +

    最早接受的年和周。如果元素的 {{htmlattrxref("value", "input")}}小于此值,则该元素将无法通过 约束验证。如果为min指定的值不是有效的星期字符串,则输入没有最小值。

    该值必须小于或等于 max 属性的值。

    @@ -119,13 +119,13 @@

    step

    {{page("/en-US/docs/Web/HTML/Element/input/number", "step-include")}}

    -

    对于week 输入, step 的值以周为单位,比例因子为 604,800,000(因为基础数值以毫秒为单位)。 step的默认值为 1,表示 1 周。 默认的步进基数是-259,200,000,这是 1970 年第一周的开始 ("1970-W01").

    +

    对于week 输入, step 的值以周为单位,比例因子为 604,800,000(因为基础数值以毫秒为单位)。 step的默认值为 1,表示 1 周。默认的步进基数是 -259,200,000,这是 1970 年第一周的开始 ("1970-W01").

    -

    目前,尚不清楚当与week输入一起使用时,"any" 的值对step 意味着什么。 确定该信息后,将对其进行更新。

    +

    目前,尚不清楚当与week输入一起使用时,"any" 的值对step 意味着什么。确定该信息后,将对其进行更新。

    使用星期输入

    -

    乍看之下,周输入听起来很方便,因为它们提供了用于选择周的简单 UI,并且它们标准化了发送到服务器的数据格式,而与用户的浏览器或区域设置无关。 但是, <input type="week"> 存在问题,因为不能保证所有浏览器都支持浏览器。

    +

    乍看之下,周输入听起来很方便,因为它们提供了用于选择周的简单 UI,并且它们标准化了发送到服务器的数据格式,而与用户的浏览器或区域设置无关。但是, <input type="week"> 存在问题,因为不能保证所有浏览器都支持浏览器。

    我们将研究 <input type="week">的基本和更复杂的用法,然后在以后提供有关缓解浏览器支持问题的建议(请参阅 处理浏览器支持).

    @@ -150,11 +150,11 @@

    使用 step 属性

    验证方式

    -

    默认情况下,<input type="week"> 不会对输入的值应用任何验证。 UI 实现通常不允许您指定不是有效的周/年的任何内容,这很有用,但是仍然可以在字段为空的情况下提交,并且您可能希望限制可选择的周数范围。

    +

    默认情况下,<input type="week"> 不会对输入的值应用任何验证。UI 实现通常不允许您指定不是有效的周/年的任何内容,这很有用,但是仍然可以在字段为空的情况下提交,并且您可能希望限制可选择的周数范围。

    设置最大和最小星期

    -

    您可以使用 {{htmlattrxref("min", "input")}} 和 {{htmlattrxref("max", "input")}} 属性来限制用户可以选择的有效周数。 在以下示例中,我们设置了 Week 01, 2017 的最小值和 Week 52, 2017的最大值:

    +

    您可以使用 {{htmlattrxref("min", "input")}} 和 {{htmlattrxref("max", "input")}} 属性来限制用户可以选择的有效周数。在以下示例中,我们设置了 Week 01, 2017 的最小值和 Week 52, 2017的最大值:

    <form>
       <label for="week">What week would you like to start?</label>
    @@ -165,7 +165,7 @@ 

    设置最大和最小星期

    {{EmbedLiveSample('Setting_maximum_and_minimum_weeks', 600, 40)}}

    -

    这是上面示例中使用的 CSS。 在这里,我们利用{{cssxref(":valid")}} and {{cssxref(":invalid")}} CSS 属性根据当前值是否有效来设置输入的样式。 我们必须将图标放在输入旁边的 {{htmlelement("span")}} 上,而不是输入本身上,因为在 Chrome 中,生成的内容位于表单控件内,无法设置样式或显示 有效。

    +

    这是上面示例中使用的 CSS。在这里,我们利用{{cssxref(":valid")}} and {{cssxref(":invalid")}} CSS 属性根据当前值是否有效来设置输入的样式。我们必须将图标放在输入旁边的 {{htmlelement("span")}} 上,而不是输入本身上,因为在 Chrome 中,生成的内容位于表单控件内,无法设置样式或显示 有效。

    div {
       margin-bottom: 10px;
    @@ -196,9 +196,9 @@ 

    设置最大和最小星期

    使周值成为必需

    -

    另外,您可以使用 {{htmlattrxref("required", "input")}} }属性来强制填写星期。 因此,如果您尝试提交空白的星期字段,则支持的浏览器将显示错误。

    +

    另外,您可以使用 {{htmlattrxref("required", "input")}} }属性来强制填写星期。因此,如果您尝试提交空白的星期字段,则支持的浏览器将显示错误。

    -

    让我们看一个例子; 在这里,我们设置了最小和最大周数,并设置了必填字段:

    +

    让我们看一个例子;在这里,我们设置了最小和最大周数,并设置了必填字段:

    <form>
       <div>
    @@ -212,7 +212,7 @@ 

    使周值成为必需

    </div> </form>
    -

    如果您尝试提交不带任何值的表单,浏览器将显示错误。 现在尝试使用示例:

    +

    如果您尝试提交不带任何值的表单,浏览器将显示错误。现在尝试使用示例:

    {{EmbedLiveSample('Making_week_values_required', 600, 120)}}

    @@ -221,7 +221,7 @@

    使周值成为必需

    -

    重要提示:HTML 表单验证不能代替脚本来确保输入的数据采用正确的格式。 对于某人来说,对 HTML 进行调整以使其绕过验证或完全删除验证太容易了。 有人也可以完全绕开您的 HTML 并将数据直接提交到您的服务器。 如果您的服务器端代码无法验证其接收到的数据,则在提交格式不正确的数据(或太大,类型错误的数据等)时,灾难可能会发生。

    +

    重要提示:HTML 表单验证不能代替脚本来确保输入的数据采用正确的格式。对于某人来说,对 HTML 进行调整以使其绕过验证或完全删除验证太容易了。有人也可以完全绕开您的 HTML 并将数据直接提交到您的服务器。如果您的服务器端代码无法验证其接收到的数据,则在提交格式不正确的数据(或太大,类型错误的数据等)时,灾难可能会发生。

    处理浏览器支持

    @@ -229,11 +229,11 @@

    处理浏览器支持

    如上所述,现在使用星期输入的主要问题是浏览器支持:Safari 和 Firefox 在桌面上不支持它,而旧版本的 IE 不支持它。


    - 诸如 Android 和 iOS 之类的移动平台确实很好地利用了这种输入类型,提供了专门的 UI 控件,使在触摸屏环境中选择值变得非常容易。 例如,Android 版 Chrome 上的周选择器如下所示:

    + 诸如 Android 和 iOS 之类的移动平台确实很好地利用了这种输入类型,提供了专门的 UI 控件,使在触摸屏环境中选择值变得非常容易。例如,Android 版 Chrome 上的周选择器如下所示:

    不支持的浏览器会优雅地降级为文本输入,但这在用户界面的一致性(所提供的控件将有所不同)和数据处理方面都产生了问题。

    -

    第二个问题是更严重的。 如前所述,在输入一个week 的情况下,实际值始终会归一化为 yyyy-Www格式。当浏览器退回通用文本输入时,没有什么可以指导用户正确格式化输入的格式(这肯定是不直观的)。 人们可以通过多种方式来写星期值。 例如:

    +

    第二个问题是更严重的。如前所述,在输入一个week 的情况下,实际值始终会归一化为 yyyy-Www格式。当浏览器退回通用文本输入时,没有什么可以指导用户正确格式化输入的格式(这肯定是不直观的)。人们可以通过多种方式来写星期值。例如:

    • 2017 年第 1 周
    • @@ -242,7 +242,7 @@

      处理浏览器支持

    • 等等。
    -

    目前,以跨浏览器方式处理星期/年的最佳方法是让用户在单独的控件中输入星期数和年份 ({{htmlelement("select")}} 元素很流行; 参见下面的示例),或使用 JavaScript 库(例如 jQuery 日期选择器

    +

    目前,以跨浏览器方式处理星期/年的最佳方法是让用户在单独的控件中输入星期数和年份 ({{htmlelement("select")}} 元素很流行;参见下面的示例),或使用 JavaScript 库(例如 jQuery 日期选择器

    例子

    @@ -307,7 +307,7 @@

    例子

    }
    -

    该代码中可能感兴趣的另一部分是特征检测代码。 要检测浏览器是否支持<input type="week">, 我们创建一个新的 {{htmlelement("input")}} 元素,尝试将其 type 设置为 week, 然后立即检查其 type 设置为。  不支持的浏览器将返回text,因为week类型回退为text类型。 如果不支持 ,  <input type="week"> 我们将隐藏本机选择器并显示后备选择器 UI ({{htmlelement("select")}}s) .

    +

    该代码中可能感兴趣的另一部分是特征检测代码。要检测浏览器是否支持<input type="week">, 我们创建一个新的 {{htmlelement("input")}} 元素,尝试将其 type 设置为 week, 然后立即检查其 type 设置为。  不支持的浏览器将返回text,因为week类型回退为text类型。如果不支持 ,  <input type="week"> 我们将隐藏本机选择器并显示后备选择器 UI ({{htmlelement("select")}}s) .

    // define variables
     var nativePicker = document.querySelector('.nativeWeekPicker');
    @@ -351,7 +351,7 @@ 

    例子

    }
    -

    注意: 请记住,有些年份有 53 周(请参阅 每年的周数)! 在开发生产应用程序时,您需要考虑到这一点。

    +

    注意: 请记住,有些年份有 53 周(请参阅 每年的周数)!在开发生产应用程序时,您需要考虑到这一点。

    技术指标

    diff --git a/files/zh-cn/web/html/element/label/index.html b/files/zh-cn/web/html/element/label/index.html index dbfa5e2a9454f8..1d317d5c707890 100644 --- a/files/zh-cn/web/html/element/label/index.html +++ b/files/zh-cn/web/html/element/label/index.html @@ -26,7 +26,7 @@

    将一个 <label> 和一个 {{htmlelement("input")}} 元素相关联主要有这些优点:

      -
    • 标签文本不仅与其相应的文本输入元素在视觉上相关联,程序中也是如此。 这意味着,当用户聚焦到这个表单输入元素时,屏幕阅读器可以读出标签,让使用辅助技术的用户更容易理解应输入什么数据。
    • +
    • 标签文本不仅与其相应的文本输入元素在视觉上相关联,程序中也是如此。这意味着,当用户聚焦到这个表单输入元素时,屏幕阅读器可以读出标签,让使用辅助技术的用户更容易理解应输入什么数据。
    • 你可以点击关联的标签来聚焦或者激活这个输入元素,就像直接点击输入元素一样。这扩大了元素的可点击区域,让包括使用触屏设备在内的用户更容易激活这个元素。
    @@ -51,7 +51,7 @@

    属性

    {{htmlattrdef("for")}}
    -
    即和 <label> 元素在同一文档中的 可关联标签的元素 的 {{htmlattrxref("id")}}。 文档中第一个 id 值与 <label> 元素 for 属性值相同的元素,如果可关联标签(labelable),则为已关联标签的控件,其标签就是这个 <label> 元素。如果这个元素不可关联标签,则 for 属性没有效果。如果文档中还有其他元素的 id 值也和 for 属性相同,for 属性对这些元素也没有影响。 +
    即和 <label> 元素在同一文档中的 可关联标签的元素 的 {{htmlattrxref("id")}}。文档中第一个 id 值与 <label> 元素 for 属性值相同的元素,如果可关联标签(labelable),则为已关联标签的控件,其标签就是这个 <label> 元素。如果这个元素不可关联标签,则 for 属性没有效果。如果文档中还有其他元素的 id 值也和 for 属性相同,for 属性对这些元素也没有影响。
    注意:<label> 元素可同时有一个 for 属性和一个子代控件元素,只是 for 属性需要指向这个控件元素。
    {{htmlattrdef("form")}}
    diff --git a/files/zh-cn/web/html/element/li/index.html b/files/zh-cn/web/html/element/li/index.html index 998afe8ae633fc..fab75a1a2c7e1d 100644 --- a/files/zh-cn/web/html/element/li/index.html +++ b/files/zh-cn/web/html/element/li/index.html @@ -23,7 +23,7 @@ 允许的父元素 - {{HTMLElement("ul")}}、 {{HTMLElement("ol")}}、 或者 {{HTMLElement("menu")}} 元素。过时的 {{HTMLElement("dir")}} 也可以作为父元素,但是并不提倡。 + {{HTMLElement("ul")}}、 {{HTMLElement("ol")}}、或者 {{HTMLElement("menu")}} 元素。过时的 {{HTMLElement("dir")}} 也可以作为父元素,但是并不提倡。 DOM 接口 diff --git a/files/zh-cn/web/html/element/link/index.html b/files/zh-cn/web/html/element/link/index.html index f366e2ffaed2d4..6444a536422bc8 100644 --- a/files/zh-cn/web/html/element/link/index.html +++ b/files/zh-cn/web/html/element/link/index.html @@ -11,7 +11,7 @@ ---
    {{HTMLRef}}
    -

    HTML 外部资源链接元素 (<link>) 规定了当前文档与外部资源的关系。该元素最常用于链接样式表,此外也可以被用来创建站点图标 (比如 PC 端的 “favicon” 图标和移动设备上用以显示在主屏幕的图标) 。

    +

    HTML 外部资源链接元素 (<link>) 规定了当前文档与外部资源的关系。该元素最常用于链接样式表,此外也可以被用来创建站点图标 (比如 PC 端的“favicon”图标和移动设备上用以显示在主屏幕的图标) 。

    {{EmbedInteractiveExample("pages/tabbed/link.html")}}
    @@ -19,7 +19,7 @@
    <link href="main.css" rel="stylesheet">
    -

    在这个简单的例子中,使用了 href 属性设置外部资源的路径,并设置 rel 属性的值为 “stylesheet”(样式表)。rel 表示 “关系 (relationship) ”,它可能是<link>元素其中一个关键的特性——属性值表示<link>项的链接方式与包含它的文档之间的关系。你将在我们的链接类型中看到很多不同类型的关系。

    +

    在这个简单的例子中,使用了 href 属性设置外部资源的路径,并设置 rel 属性的值为“stylesheet”(样式表)。rel 表示“关系 (relationship) ”,它可能是<link>元素其中一个关键的特性——属性值表示<link>项的链接方式与包含它的文档之间的关系。你将在我们的链接类型中看到很多不同类型的关系。

    这里有一些你经常遇到的其它类型。例如,这里是一个网站图标的链接:

    @@ -136,27 +136,27 @@

    属性

    当不设置此属性时,资源将会不使用 CORS 加载 (即不发送 Origin: HTTP 头), 这将阻止其在 {{HTMLElement('canvas')}} 元素中进行使用。若设置了非法的值,则视为使用 anonymous. 前往 CORS settings attributes 获取更多信息。
    {{htmlattrdef("disabled")}}
    -

    仅对于rel="stylesheet" ,disabled 的 Boolean 属性指示是否应加载所描述的样式表并将其应用于文档。 如果在加载 HTML 时在 HTML 中指定了 Disabled,则在页面加载期间不会加载样式表。 相反,如果禁用属性更改为 false 或删除时,样式表将按需加载。

    +

    仅对于rel="stylesheet" ,disabled 的 Boolean 属性指示是否应加载所描述的样式表并将其应用于文档。如果在加载 HTML 时在 HTML 中指定了 Disabled,则在页面加载期间不会加载样式表。相反,如果禁用属性更改为 false 或删除时,样式表将按需加载。

    -

    但是,一旦加载样式表,对 Disabled 属性的值所做的更改将不再与{{domxref("StyleSheet.disabled")}} 属性的值有任何关系。 相反,更改此属性的值只是启用和禁用应用于文档的样式表表单。

    +

    但是,一旦加载样式表,对 Disabled 属性的值所做的更改将不再与{{domxref("StyleSheet.disabled")}} 属性的值有任何关系。相反,更改此属性的值只是启用和禁用应用于文档的样式表表单。

    -

    这与 StyleSheet 的 disable 属性不同; 将其更改为 true 会将样式表从文档的{{domxref("document.styleSheets")}} 列表中删除,并且在切换回 false 时不会自动重新加载样式表。

    +

    这与 StyleSheet 的 disable 属性不同;将其更改为 true 会将样式表从文档的{{domxref("document.styleSheets")}} 列表中删除,并且在切换回 false 时不会自动重新加载样式表。

    {{htmlattrdef("href")}}
    此属性指定被链接资源的{{glossary("URL")}}。 URL 可以是绝对的,也可以是相对的。
    {{htmlattrdef("hreflang")}}
    此属性指明了被链接资源的语言。其意义仅供参考。可取的值参见 BCP47。仅当设置了 {{htmlattrxref("href", "a")}} 属性时才应设置该属性。
    {{HTMLAttrDef("importance")}} {{Experimental_Inline}}
    -
    指示资源的相对重要性。 优先级提示使用以下值委托:
    +
    指示资源的相对重要性。优先级提示使用以下值委托:
    -

    auto: 表示没有偏好。 浏览器可以使用其自己的启发式方法来确定资源的优先级。

    +

    auto: 表示没有偏好。浏览器可以使用其自己的启发式方法来确定资源的优先级。

    high: 向浏览器指示资源具有高优先级。

    low: 向浏览器指示资源的优先级较低。

    -

    Note: 只有存在 rel=“preload” 或 rel=“prefetch” 时,importance 属性才能用于<link>元素。

    +

    Note: 只有存在 rel=“preload”或 rel=“prefetch”时,importance 属性才能用于<link>元素。

    {{htmlattrdef("integrity")}} {{experimental_inline}}
    @@ -174,14 +174,14 @@

    属性

    一个字符串,指示在获取资源时使用哪个引荐来源网址:
    • 'no-referrer' 表示{{HTTPHeader("Referer")}} 标头将不会发送。
    • -
    • 'no-referrer-when-downgrade' 的原始位置时不会发送任何{{HTTPHeader("Referer")}}标头。 如果未指定其他政策,这是用户代理的默认行为。
    • +
    • 'no-referrer-when-downgrade' 的原始位置时不会发送任何{{HTTPHeader("Referer")}}标头。如果未指定其他政策,这是用户代理的默认行为。
    • 'origin' 意味着引荐来源网址将是页面的来源,大致是方案,主机和端口。
    • 'origin-when-cross-origin' 这意味着导航到其他来源将仅限于方案,主机和端口,而在同一来源上导航将包括引荐来源网址的路径。
    • -
    • 'unsafe-url' 意味着引荐来源网址将包含来源和路径(但不包括片段,密码或用户名)。 这种情况是不安全的,因为它可能会将来源和路径从受 TLS 保护的资源泄漏到不安全的来源。
    • +
    • 'unsafe-url' 意味着引荐来源网址将包含来源和路径(但不包括片段,密码或用户名)。这种情况是不安全的,因为它可能会将来源和路径从受 TLS 保护的资源泄漏到不安全的来源。
    {{htmlattrdef("rel")}}
    -
    此属性命名链接文档与当前文档的关系。 该属性必须是链接类型值的用空格分隔的列表。
    +
    此属性命名链接文档与当前文档的关系。该属性必须是链接类型值的用空格分隔的列表。
    {{htmlattrdef("sizes")}}
    这个属性定义了包含相应资源的可视化媒体中的 icons 的大小。它只有在{{htmlattrxref("rel","link")}}包含 icon 的link 类型值。它可能有如下的规则。
      @@ -206,27 +206,27 @@

      属性

      非标准属性

      {{HTMLAttrDef("methods")}} {{Non-standard_Inline}}
      -
      此属性的值提供有关可能在对象上执行的功能的信息。 这些值通常在使用时由 HTTP 协议给出,但是(出于与 “title” 属性类似的原因)将其预先包含在链接中可能是有用的。 例如,浏览器可能根据指定的方法选择不同的链接呈现方式。 可搜索的内容可能会得到其他图标,或者外部链接可能会显示离开当前站点的指示。 即使定义的浏览器 Internet Explorer 4 也无法很好地理解或支持此属性。
      +
      此属性的值提供有关可能在对象上执行的功能的信息。这些值通常在使用时由 HTTP 协议给出,但是(出于与“title”属性类似的原因)将其预先包含在链接中可能是有用的。例如,浏览器可能根据指定的方法选择不同的链接呈现方式。可搜索的内容可能会得到其他图标,或者外部链接可能会显示离开当前站点的指示。即使定义的浏览器 Internet Explorer 4 也无法很好地理解或支持此属性。
      {{HTMLAttrDef("prefetch")}} {{Non-standard_Inline}} {{secureContext_inline}}
      -
      此属性标识下一个导航可能需要的资源,用户代理应检索该资源。 这允许用户代理在将来请求资源时更快地做出响应。
      +
      此属性标识下一个导航可能需要的资源,用户代理应检索该资源。这允许用户代理在将来请求资源时更快地做出响应。
      {{HTMLAttrDef("target")}} {{Non-standard_Inline}}
      定义具有已定义链接关系或将显示任何链接资源的呈现的框架或窗口名称。

      已淘汰的属性

      {{htmlattrdef("charset")}}{{obsolete_inline}}
      -
      此属性定义链接资源的字符编码。 该值为{{rfc(2045)}}中定义的字符集的空格和/或逗号分隔列表。 缺省值为 iso-8859-1。 +
      此属性定义链接资源的字符编码。该值为{{rfc(2045)}}中定义的字符集的空格和/或逗号分隔列表。缺省值为 iso-8859-1。

      使用说明:该属性已淘汰且禁止使用。要实现相同效果,可在外链资源中使用Content-Type HTTP header。

      {{htmlattrdef("rev")}}{{obsolete_inline}}
      -
      此属性的值显示了 {{HTMLAttrxRef("href", "link")}} 属性所定义的当前文档与链接文档的关系。 因此,该属性定义了与 rel 属性的值相比的反向关系。 该属性的Link type value类似于{{HTMLAttrxRef("rel", "link")}}的可能值。
      +
      此属性的值显示了 {{HTMLAttrxRef("href", "link")}} 属性所定义的当前文档与链接文档的关系。因此,该属性定义了与 rel 属性的值相比的反向关系。该属性的Link type value类似于{{HTMLAttrxRef("rel", "link")}}的可能值。
      -

      Note: WHATWG HTML 生活标准(MDN 将其视为规范的规范)认为该属性已过时。 但是,值得注意的是,rev 在 W3C 规范中并未过时。 就是说,鉴于不确定性,依靠 rev 是不明智的。

      +

      Note: WHATWG HTML 生活标准(MDN 将其视为规范的规范)认为该属性已过时。但是,值得注意的是,rev 在 W3C 规范中并未过时。就是说,鉴于不确定性,依靠 rev 是不明智的。

      -

      相反,您应该使用具有相反链接类型值的{{HTMLAttrxRef("rel", "link")}}属性。 例如,要建立反向链接,请指定作者。 而且,即使许多站点都以这种方式滥用此属性,该属性也不代表 “修订”,并且不得与版本号一起使用。

      +

      相反,您应该使用具有相反链接类型值的{{HTMLAttrxRef("rel", "link")}}属性。例如,要建立反向链接,请指定作者。而且,即使许多站点都以这种方式滥用此属性,该属性也不代表“修订”,并且不得与版本号一起使用。

    @@ -268,7 +268,7 @@

    提供用于不同用法上

    通过媒体查询有条件地加载资源

    -

    您可以在media属性中提供媒体类型或查询; 然后,只有在媒体条件为 true 时,才会加载此资源。 例如:

    +

    您可以在media属性中提供媒体类型或查询; 然后,只有在媒体条件为 true 时,才会加载此资源。例如:

    <link href="print.css" rel="stylesheet" media="print">
     <link href="mobile.css" rel="stylesheet" media="all">
    diff --git a/files/zh-cn/web/html/element/menu/index.html b/files/zh-cn/web/html/element/menu/index.html
    index 194639f9a2ea18..e510af6a9a07b8 100644
    --- a/files/zh-cn/web/html/element/menu/index.html
    +++ b/files/zh-cn/web/html/element/menu/index.html
    @@ -71,7 +71,7 @@ 

    使用备注

    Toolbar menus consist of a <menu> element whose content is described in one of two ways: either as an unordered list of items represented by {{HTMLElement("li")}} elements (each representing a command or option the user can utilize), or (if there are no <li> elements), flow content describing the available commands and options.

    -

    这个元素在 HTML4 中被弃用,但在 HTML 5.1 和 HTML living standard 中被重新推荐使用。 这份文档描述的是当前 Firefox 上的实现。根据 HTML 5.1 的规定,{{HTMLElement("list")}} 元素的类型可能会更改为{{HTMLElement("toolbar")}}。

    +

    这个元素在 HTML4 中被弃用,但在 HTML 5.1 和 HTML living standard 中被重新推荐使用。这份文档描述的是当前 Firefox 上的实现。根据 HTML 5.1 的规定,{{HTMLElement("list")}} 元素的类型可能会更改为{{HTMLElement("toolbar")}}。

    例子

    diff --git a/files/zh-cn/web/html/element/meta/index.html b/files/zh-cn/web/html/element/meta/index.html index bdfc85897e8ad6..105b60cb8834a1 100644 --- a/files/zh-cn/web/html/element/meta/index.html +++ b/files/zh-cn/web/html/element/meta/index.html @@ -37,7 +37,7 @@

    属性

    此元素包括全局属性

    -

    注意:全局属性 {{htmlattrxref("name", "meta")}} 在 {{HTMLElement("meta")}} 元素中具有特殊的语义;另外, 在同一个 <meta> 标签中,{{htmlattrxref("name", "meta")}}, {{htmlattrxref("http-equiv", "meta")}} 或者 {{htmlattrxref("charset", "meta")}} 三者中任何一个属性存在时,{{htmlattrxref("itemprop", "meta")}} 属性不能被使用。

    +

    注意:全局属性 {{htmlattrxref("name", "meta")}} 在 {{HTMLElement("meta")}} 元素中具有特殊的语义;另外,在同一个 <meta> 标签中,{{htmlattrxref("name", "meta")}}, {{htmlattrxref("http-equiv", "meta")}} 或者 {{htmlattrxref("charset", "meta")}} 三者中任何一个属性存在时,{{htmlattrxref("itemprop", "meta")}} 属性不能被使用。

    {{htmlattrdef("charset")}}

    @@ -51,7 +51,7 @@

    属性

    属性定义了一个编译指示指令。这个属性叫做 http-equiv(alent) 是因为所有允许的值都是特定 HTTP 头部的名称,如下:
    • content-security-policy
      - 它允许页面作者定义当前页的内容策略。 内容策略主要指定允许的服务器源和脚本端点,这有助于防止跨站点脚本攻击。
    • + 它允许页面作者定义当前页的内容策略。内容策略主要指定允许的服务器源和脚本端点,这有助于防止跨站点脚本攻击。
    • content-type
      如果使用这个属性,其值必须是"text/html; charset=utf-8"。注意:该属性只能用于 MIME typetext/html 的文档,不能用于 MIME 类型为 XML 的文档。
    • default-style diff --git a/files/zh-cn/web/html/element/meta/name/index.html b/files/zh-cn/web/html/element/meta/name/index.html index e7a9fe70209697..d0ad2d5594c65f 100644 --- a/files/zh-cn/web/html/element/meta/name/index.html +++ b/files/zh-cn/web/html/element/meta/name/index.html @@ -202,7 +202,7 @@

      其他元数据名称

    • creator:当前文档的创建者,例如某个组织或者机构。如果有不止一个创建者,则应当使用多个名称为 creator 的 {{HTMLElement("meta")}} 元素。(而不是像关键词一样使用逗号分隔:关键词不应包含逗号,但创建者名称可能含有逗号。)
    • googlebotrobots 的替代名称,只被 Googlebot(Google 的网页爬虫/索引搜寻器)使用。
    • publisher:当前文档的发布者/出版者。
    • -
    • robots:爬虫、协作搜寻器,或者 “机器人”,对此页面的处理行为,或者说,应当遵守的规则。是一个使用逗号分隔的、由下列值构成的列表: +
    • robots:爬虫、协作搜寻器,或者“机器人”,对此页面的处理行为,或者说,应当遵守的规则。是一个使用逗号分隔的、由下列值构成的列表: diff --git a/files/zh-cn/web/html/element/nav/index.html b/files/zh-cn/web/html/element/nav/index.html index cf6ef96fb2981c..f09b1c2d077b70 100644 --- a/files/zh-cn/web/html/element/nav/index.html +++ b/files/zh-cn/web/html/element/nav/index.html @@ -98,7 +98,7 @@

      浏览器兼容

      更多

        -
      • 其他部分相关元素: {{HTMLElement("body")}}, {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}};
      • +
      • 其他部分相关元素:{{HTMLElement("body")}}, {{HTMLElement("article")}}, {{HTMLElement("section")}}, {{HTMLElement("aside")}}, {{HTMLElement("h1")}}, {{HTMLElement("h2")}}, {{HTMLElement("h3")}}, {{HTMLElement("h4")}}, {{HTMLElement("h5")}}, {{HTMLElement("h6")}}, {{HTMLElement("hgroup")}}, {{HTMLElement("header")}}, {{HTMLElement("footer")}}, {{HTMLElement("address")}};
      • HTML5 的文档节段和纲要.
      • ARIA: Navigation role
      diff --git a/files/zh-cn/web/html/element/noembed/index.html b/files/zh-cn/web/html/element/noembed/index.html index 2e39dea284907d..9e5483296127f7 100644 --- a/files/zh-cn/web/html/element/noembed/index.html +++ b/files/zh-cn/web/html/element/noembed/index.html @@ -5,7 +5,7 @@ ---
      {{HTMLRef}}{{Non-standard_header}}{{deprecated_header}}
      -

      <noembed> 元素是个废除的和不标准的方式,用于向不支持 {{HTMLElement("embed")}} ,或者不支持作者希望的 嵌入式内容 的浏览器提供替代(或者 “后备”)内容。这个元素在 HTML 4.01 起废除,以支持 {{HTMLElement("object")}}。后备内容应该插在 {{HTMLElement("object")}} 的开始和结束标签之间。

      +

      <noembed> 元素是个废除的和不标准的方式,用于向不支持 {{HTMLElement("embed")}} ,或者不支持作者希望的 嵌入式内容 的浏览器提供替代(或者“后备”)内容。这个元素在 HTML 4.01 起废除,以支持 {{HTMLElement("object")}}。后备内容应该插在 {{HTMLElement("object")}} 的开始和结束标签之间。

      虽然这个元素仍旧在许多浏览器中有效,它已经废除了,并且不应使用。使用 {{HTMLElement("object")}} 来代替。

      diff --git a/files/zh-cn/web/html/element/noscript/index.html b/files/zh-cn/web/html/element/noscript/index.html index a9ebe92de411b6..003439756a9979 100644 --- a/files/zh-cn/web/html/element/noscript/index.html +++ b/files/zh-cn/web/html/element/noscript/index.html @@ -22,7 +22,7 @@

      当脚本被禁用并且它不是 {{HTMLElement("head")}} 元素的子元素时:任何 transparent content 都可以,但是在它的后代中必须没有 <noscript>元素。

      -

      否则:flow content 或 phrasing content 。

      +

      否则:flow content 或 phrasing content。

      diff --git a/files/zh-cn/web/html/element/object/index.html b/files/zh-cn/web/html/element/object/index.html index b0b19d334c6070..c44e18c8c821bf 100644 --- a/files/zh-cn/web/html/element/object/index.html +++ b/files/zh-cn/web/html/element/object/index.html @@ -46,7 +46,7 @@

      属性

      {{htmlattrdef("declare")}} {{HTMLVersionInline(4)}} only; {{obsoleteGeneric('inline','HTML5')}}
      取值为布尔的属性可以设置这个元素为仅声明的格式。对象必须被随后的 <object> 元素实例化。在 HTML5 中,完整的重复 <object> 元素,可以重用元素。
      {{htmlattrdef("form")}} {{HTMLVersionInline(5)}}
      -
      对象元素关联的 form 元素(属于的 form)。 取值必须是同一文档下的一个 {{HTMLElement("form")}} 元素的 ID。
      +
      对象元素关联的 form 元素(属于的 form)。取值必须是同一文档下的一个 {{HTMLElement("form")}} 元素的 ID。
      {{htmlattrdef("height")}}
      资源显示的高度,单位是 CSS 像素。
      {{htmlattrdef("name")}}
      @@ -58,7 +58,7 @@

      属性

      {{htmlattrdef("type")}}
      data 指定的资源的 MIME 类型,需要为 datatype 中至少一个设置值。
      {{htmlattrdef("usemap")}}
      -
      指向一个 {{HTMLElement("map")}} 元素的 hash-name;格式为 ‘#’ 加 map 元素 {{htmlattrxref("name", "map")}} 元素的值。
      +
      指向一个 {{HTMLElement("map")}} 元素的 hash-name;格式为‘#’加 map 元素 {{htmlattrxref("name", "map")}} 元素的值。
      {{htmlattrdef("width")}}
      资源显示的宽度,单位是 CSS 像素。
      diff --git a/files/zh-cn/web/html/element/ol/index.html b/files/zh-cn/web/html/element/ol/index.html index 2cc2defd19d295..2d83da69889203 100644 --- a/files/zh-cn/web/html/element/ol/index.html +++ b/files/zh-cn/web/html/element/ol/index.html @@ -96,7 +96,7 @@

      使用备注

      至于如何确定该选择哪一个列表元素,可以尝试更改列表项的顺序,如果其含义会发生改变,那么就应当使用 {{HTMLElement("ol")}} 元素,否则使用 {{HTMLElement("ul")}} 更合适。

      -

      译者注:“更改顺序” 时,不应当算上一些固定位于列表最前或最后的项,比如未完成的列表最后的占位项。
      +

      译者注:“更改顺序”时,不应当算上一些固定位于列表最前或最后的项,比如未完成的列表最后的占位项。
      如果只有一个元素,以至于根本不存在什么顺序可言,可能最好先考虑是否应当使用列表元素,以及是否要在列表最后增加一些占位的空项。

      @@ -219,7 +219,7 @@

      浏览器兼容性

      相关

        -
      • 其他列表相关的 HTML 元素: {{HTMLElement("ul")}}, {{HTMLElement("li")}}, {{HTMLElement("menu")}} and the obsolete {{HTMLElement("dir")}};
      • +
      • 其他列表相关的 HTML 元素:{{HTMLElement("ul")}}, {{HTMLElement("li")}}, {{HTMLElement("menu")}} and the obsolete {{HTMLElement("dir")}};
      • <ol> 元素常用的 CSS 属性:
        • the {{cssxref("list-style")}} 属性,有用的选择序数的显示方式,
        • diff --git a/files/zh-cn/web/html/element/param/index.html b/files/zh-cn/web/html/element/param/index.html index b799967a074d40..26a738dd38d3dd 100644 --- a/files/zh-cn/web/html/element/param/index.html +++ b/files/zh-cn/web/html/element/param/index.html @@ -40,7 +40,7 @@

          属性

          {{ htmlattrdef("name") }}
          参数的名字。
          {{ htmlattrdef("type") }} {{ obsolete_inline() }}
          -
          仅当 valuetype 设置为 “ref” 时才使用。根据 URI 中给定的数据确定 MIME 类型。
          +
          仅当 valuetype 设置为“ref”时才使用。根据 URI 中给定的数据确定 MIME 类型。
          {{ htmlattrdef("value") }}
          确定参数的值。
          {{ htmlattrdef("valuetype") }} {{ obsolete_inline() }}
          diff --git a/files/zh-cn/web/html/element/rb/index.html b/files/zh-cn/web/html/element/rb/index.html index c6534d9e1838a0..2961fb74c3fd82 100644 --- a/files/zh-cn/web/html/element/rb/index.html +++ b/files/zh-cn/web/html/element/rb/index.html @@ -54,16 +54,16 @@

          用法注解

          示例

          -

          在此示例中,我们提供了与 “hanzi” 等效的原始字符的注释:

          +

          在此示例中,我们提供了与“hanzi”等效的原始字符的注释:

          <ruby>
             <rb>漢</rb>字
             <rp>(</rp><rt>han</rt>zi<rp>)</rp>
           </ruby>
          -

          请注意我们如何包含两个<rb>元素,以分隔 ruby 基本文本的两个独立部分。 另一方面,注释由两个{{htmlelement("rt")}}元素分隔。

          +

          请注意我们如何包含两个<rb>元素,以分隔 ruby 基本文本的两个独立部分。另一方面,注释由两个{{htmlelement("rt")}}元素分隔。

          -

          请注意,我们也可以使用完全单独注释的两个基本文本部分来编写此示例。 在这种情况下,我们不需要包含<rb>元素:

          +

          请注意,我们也可以使用完全单独注释的两个基本文本部分来编写此示例。在这种情况下,我们不需要包含<rb>元素:

          <ruby>
             漢 <rp>(</rp><rt>han</rt><rp>)</rp>
          diff --git a/files/zh-cn/web/html/element/script/index.html b/files/zh-cn/web/html/element/script/index.html
          index b5a6699bd9ae4c..367343287dee11 100644
          --- a/files/zh-cn/web/html/element/script/index.html
          +++ b/files/zh-cn/web/html/element/script/index.html
          @@ -110,7 +110,7 @@ 

          属性

          Deprecated attributes

          {{htmlattrdef("charset")}} {{Deprecated_inline}}
          -
          如果存在,值必须和 “utf-8” 不区分大小写的匹配。当然声明 charset 是没有必要的,因为页面文档必须使用 UTF-8,而 script 元素会从页面文档中继承这个属性。
          +
          如果存在,值必须和“utf-8”不区分大小写的匹配。当然声明 charset 是没有必要的,因为页面文档必须使用 UTF-8,而 script 元素会从页面文档中继承这个属性。
          {{htmlattrdef("language")}} {{Deprecated_inline}}
          和 type 属性类似,这个属性定义脚本使用的语言。 但是与 type 不同的是,这个属性的可能值从未被标准化过。请用type属性代替这个属性。
          diff --git a/files/zh-cn/web/html/element/section/index.html b/files/zh-cn/web/html/element/section/index.html index 9570cf62eea4ca..61e095c580b80f 100644 --- a/files/zh-cn/web/html/element/section/index.html +++ b/files/zh-cn/web/html/element/section/index.html @@ -58,7 +58,7 @@

          使用说明

          • 一般通过是否包含一个标题 ({{HTMLElement('h1')}}-{{HTMLElement('h6')}} element) 作为子节点 来 辨识每一个<section>。
          • 如果 <section> 元素的内容可以单独在多个媒体上发表,应该使用 {{HTMLElement("article")}} 而不是 {{HTMLElement("section")}}。
          • -
          • 不要把 {{HTMLElement("section")}} 元素作为一个普通的容器来使用,这是本应该是{{HTMLElement("div")}}的用法(特别是当片段(the sectioning )仅仅是为了美化样式的时候)。 一般来说,一个 {{HTMLElement("section")}} 应该出现在文档大纲中。
          • +
          • 不要把 {{HTMLElement("section")}} 元素作为一个普通的容器来使用,这是本应该是{{HTMLElement("div")}}的用法(特别是当片段(the sectioning )仅仅是为了美化样式的时候)。一般来说,一个 {{HTMLElement("section")}} 应该出现在文档大纲中。

          范例 1:

          diff --git a/files/zh-cn/web/html/element/select/index.html b/files/zh-cn/web/html/element/select/index.html index befeadc2f0cd77..47f44bd83f743f 100644 --- a/files/zh-cn/web/html/element/select/index.html +++ b/files/zh-cn/web/html/element/select/index.html @@ -32,7 +32,7 @@

          属性

          {{htmlattrdef("autocomplete")}}
          -
          一个 {{domxref("DOMString")}},为 {{Glossary("user agent", "用户代理")}} 提供自动填充功能的线索。 关于该值的完整列表以及如何使用自动填充的详细信息,请参阅 HTML 自动完成属性
          +
          一个 {{domxref("DOMString")}},为 {{Glossary("user agent", "用户代理")}} 提供自动填充功能的线索。关于该值的完整列表以及如何使用自动填充的详细信息,请参阅 HTML 自动完成属性
          {{htmlattrdef("autofocus")}}
          这个布尔值属性能够让一个对象在页面加载的时候获得焦点。一个文档中只有一个对象可以有这个属性。
          {{htmlattrdef("disabled")}}
          @@ -50,7 +50,7 @@

          属性

          如果控件显示为滚动列表框(如声明了 multiple),则此属性表示为控件中同时可见的行数。浏览器不需要将选择元素呈现为滚动列表框。默认值为 0。
          -
          提示: 根据 HTML5 规范, 默认值应该为 1; 但是,在实践中,这样会影响到一些网站,同时其它浏览器也没有那么处理,所以 Mozilla 在 Firefox 中选择继续使用默认值 0。
          +
          提示: 根据 HTML5 规范, 默认值应该为 1;但是,在实践中,这样会影响到一些网站,同时其它浏览器也没有那么处理,所以 Mozilla 在 Firefox 中选择继续使用默认值 0。
          @@ -89,7 +89,7 @@

          应用 CSS 样式

          众所周知,<select>元素很难用 CSS 进行高效的设计。你可以像其他元素一样改变某些方面——例如,调整 盒模型显示的字体 等,你还可以使用 {{cssxref("appearance")}} 属性来去除默认的系统外观。

          -

          但是,这些属性的表现在不同浏览器之间并不一致,而且有些事情难以很好地处理,例如在一列中顺序排列不同类型的表单元素。 <select>元素的内部结构复杂,难以控制。 如果你想完全控制,你应该考虑使用一个在修改表单部件样式方面拥有强大能力的库,或者尝试使用非语义元素和 JavaScript 来制作下拉菜单,再使用 WAI-ARIA 来提供语义。

          +

          但是,这些属性的表现在不同浏览器之间并不一致,而且有些事情难以很好地处理,例如在一列中顺序排列不同类型的表单元素。 <select>元素的内部结构复杂,难以控制。如果你想完全控制,你应该考虑使用一个在修改表单部件样式方面拥有强大能力的库,或者尝试使用非语义元素和 JavaScript 来制作下拉菜单,再使用 WAI-ARIA 来提供语义。

          有关样式<select>的更多有用信息,请参阅:

          @@ -191,6 +191,6 @@

          浏览器兼容性

          参见

            -
          • 其它表单对象: {{HTMLElement("form")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("option")}}, {{HTMLElement("datalist")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} 和 {{HTMLElement("meter")}}。
          • +
          • 其它表单对象:{{HTMLElement("form")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("option")}}, {{HTMLElement("datalist")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} 和 {{HTMLElement("meter")}}。
          • 由 <select> 触发的事件: {{domxref("HTMLElement/change_event", "change")}}, {{domxref("HTMLElement/input_event", "input")}}
          diff --git a/files/zh-cn/web/html/element/slot/index.html b/files/zh-cn/web/html/element/slot/index.html index 2a3a2f50efdbc4..138265f01d5825 100644 --- a/files/zh-cn/web/html/element/slot/index.html +++ b/files/zh-cn/web/html/element/slot/index.html @@ -14,7 +14,7 @@

          译者注: 本翻译的一些术语参考了Vuejs-中文页面。

          -

          HTML <slot> 元素 ,作为 Web Components 技术套件的一部分,是 Web 组件内的一个占位符。该占位符可以在后期使用自己的标记语言填充,这样您就可以创建单独的 DOM 树,并将它与其它的组件组合在一起。

          +

          HTML <slot> 元素,作为 Web Components 技术套件的一部分,是 Web 组件内的一个占位符。该占位符可以在后期使用自己的标记语言填充,这样您就可以创建单独的 DOM 树,并将它与其它的组件组合在一起。

      <meta name="robots">content 属性的值
      diff --git a/files/zh-cn/web/html/element/spacer/index.html b/files/zh-cn/web/html/element/spacer/index.html index df0de86cb9cdab..466d6630030bb5 100644 --- a/files/zh-cn/web/html/element/spacer/index.html +++ b/files/zh-cn/web/html/element/spacer/index.html @@ -5,7 +5,7 @@ ---
      {{non-standard_header}}{{ obsolete_header }}
      -

      <spacer> 是过时的 HTML 元素,它可以向页面插入间隔。它由 Netscape 设计,用于实现单像素布局图像的相同效果,Web 设计师用它来向页面添加空白,而不需要实际使用图片。 但是,<spacer> 不再受任何主流浏览器支持,并且相同效果可以简单由 CSS 实现。

      +

      <spacer> 是过时的 HTML 元素,它可以向页面插入间隔。它由 Netscape 设计,用于实现单像素布局图像的相同效果,Web 设计师用它来向页面添加空白,而不需要实际使用图片。但是,<spacer> 不再受任何主流浏览器支持,并且相同效果可以简单由 CSS 实现。

      Firefox 是 Netscape 浏览器的后继,在版本 4 中移除了 <spacer> 的支持。

      diff --git a/files/zh-cn/web/html/element/strong/index.html b/files/zh-cn/web/html/element/strong/index.html index df546b1db4284d..84f5138d2ecd7f 100644 --- a/files/zh-cn/web/html/element/strong/index.html +++ b/files/zh-cn/web/html/element/strong/index.html @@ -64,13 +64,13 @@

      Bold vs. Strong

      新的开发者经常感到疑惑,为什么在一个渲染的网站上会有这么多方式来表达同样的东西。Bold 和 Strong 可能就是这其中的一种。为什么使用<strong></strong>而不是<b></b>? 使用 strong 的话你不得不打更多的字母,却产生出和 b 同样的效果,对吧?

      -

      也许并不是; strong 是一个逻辑状态,而 bold 是一个物理状态。逻辑状态分离内容和表现形式,使用逻辑状态允许你用各种不同的方式来表达。比如你想把文字渲染成红色,使用其它大小的字体、带有下划线或其他样式,而不是加粗的样式。必须要理解使用 strong 呈现出的表现形式不同于单纯的加粗。 因为 bold 是一个物理状态,他没有区分表现形式和内容。如果让 bold 做了加粗文本外的其它任何事情,都将会令人困惑而且也不符合逻辑。

      +

      也许并不是;strong 是一个逻辑状态,而 bold 是一个物理状态。逻辑状态分离内容和表现形式,使用逻辑状态允许你用各种不同的方式来表达。比如你想把文字渲染成红色,使用其它大小的字体、带有下划线或其他样式,而不是加粗的样式。必须要理解使用 strong 呈现出的表现形式不同于单纯的加粗。 因为 bold 是一个物理状态,他没有区分表现形式和内容。如果让 bold 做了加粗文本外的其它任何事情,都将会令人困惑而且也不符合逻辑。

      同样应该注意<b></b> 还有其他用途,比如想单纯地吸引注意而不增加其重要性。

      Emphasis vs. Strong

      -

      在 HTML4 时, Strong 简单地表示一个更强的强调 (emphasis),而在 HTML5 中,这个元素被描述为表征 “内容强烈的重要性 (strong importance for its contents) ”。这是一个重要的区别。Em 标签 (Emphasis) 用于改变一个句子的意思 (比如"我<em>喜欢</em>胡萝卜" 和"我喜欢<em>胡萝卜</em>",分别强调喜欢和胡萝卜), Strong 用来对一个句子的部分增加重要性 (比如 "警告! 这非常危险。") Strong 和 Emphasis 都可以分别通过嵌套来增加相对重要性或强调重点。

      +

      在 HTML4 时,Strong 简单地表示一个更强的强调 (emphasis),而在 HTML5 中,这个元素被描述为表征“内容强烈的重要性 (strong importance for its contents) ”。这是一个重要的区别。Em 标签 (Emphasis) 用于改变一个句子的意思 (比如"我<em>喜欢</em>胡萝卜" 和"我喜欢<em>胡萝卜</em>",分别强调喜欢和胡萝卜), Strong 用来对一个句子的部分增加重要性 (比如 "警告! 这非常危险。") Strong 和 Emphasis 都可以分别通过嵌套来增加相对重要性或强调重点。

      同样参见

      diff --git a/files/zh-cn/web/html/element/style/index.html b/files/zh-cn/web/html/element/style/index.html index e544e07191459c..b906a12ac6f2fc 100644 --- a/files/zh-cn/web/html/element/style/index.html +++ b/files/zh-cn/web/html/element/style/index.html @@ -35,7 +35,7 @@

      属性

      {{htmlattrdef("nonce")}}

      -
      一种加密的随机数(一次使用的数字),用于在style-src Content-Security-Policy中将内联样式列入白名单。 服务器每次发送策略时都必须生成一个唯一的随机数值。 提供一个无法猜测的随机数非常重要,因为绕开资源策略是微不足道的。
      +
      一种加密的随机数(一次使用的数字),用于在style-src Content-Security-Policy中将内联样式列入白名单。服务器每次发送策略时都必须生成一个唯一的随机数值。提供一个无法猜测的随机数非常重要,因为绕开资源策略是微不足道的。
      {{htmlattrdef("title")}}
      指定可选的样式表。
      @@ -46,7 +46,7 @@

      已淘汰属性

      此属性指定样式仅适用于其父项和子项的元素。

      -

      以后可能会根据https://github.com/w3c/csswg-drafts/issues/3547重新引入此属性。 如果要立即使用该属性,则可以使用polyfill

      +

      以后可能会根据https://github.com/w3c/csswg-drafts/issues/3547重新引入此属性。如果要立即使用该属性,则可以使用polyfill

      diff --git a/files/zh-cn/web/html/element/table/index.html b/files/zh-cn/web/html/element/table/index.html index 4f5587c56d53a9..6913131ffa4391 100644 --- a/files/zh-cn/web/html/element/table/index.html +++ b/files/zh-cn/web/html/element/table/index.html @@ -74,8 +74,8 @@

       属性

       这个枚举属性指定了包含在文档中的表格必须如何对齐。有如下值:
      • left,表格将在文档左侧显示;
      • -
      • center, 表格将在文档中央显示;
      • -
      • right, 表格将在文档右侧显示;
      • +
      • center,表格将在文档中央显示;
      • +
      • right,表格将在文档右侧显示;
      小贴士: @@ -150,7 +150,7 @@

       属性

      {{htmlattrdef("border")}} {{Deprecated_inline}}
      -
      这个整型元素使用像素,定义了表格边框的大小。 如果设置为 0,这意味着{{htmlattrxref("frame", "table")}} 属性被设置为空。如果设置为 1,表示表格具有 1px 大小的边框。 +
      这个整型元素使用像素,定义了表格边框的大小。如果设置为 0,这意味着{{htmlattrxref("frame", "table")}} 属性被设置为空。如果设置为 1,表示表格具有 1px 大小的边框。
      小贴士:不要使用这个属性,该属性已废弃,{{HTMLElement("table")}} 元素应当使用 CSS 定制样式。 CSS 属性 {{cssxref("border")}}, {{cssxref("border-color")}}, {{cssxref("border-width")}} 和 {{cssxref("border-style")}} 可实现相同效果。
      @@ -158,7 +158,7 @@

       属性

      {{htmlattrdef("cellpadding")}} {{Deprecated_inline}}
      这个属性定义了表格单元的内容和边框之间的空间。如果它是一个像素长度单位,这个像素将被应用到所有的四个侧边;如果它是一个百分比的长度单位,内容将被作为中心,总的垂直(上和下)长度将代表这个百分比。这同样适用于总的水平(左和右)空间。 -
      小贴士:不要使用这个属性,因为它已经被废弃。 {{HTMLElement("table")}} 元素应该使用 CSS 定制样式。 在{{HTMLElement("table")}} 元素上使用 CSS 属性值为 collapse 的 {{cssxref("border-collapse")}} 属性,在 {{HTMLElement("td")}} 元素上使用属性 {{cssxref("padding")}},以达到类似于 cellpadding 的效果。
      +
      小贴士:不要使用这个属性,因为它已经被废弃。 {{HTMLElement("table")}} 元素应该使用 CSS 定制样式。在{{HTMLElement("table")}} 元素上使用 CSS 属性值为 collapse 的 {{cssxref("border-collapse")}} 属性,在 {{HTMLElement("td")}} 元素上使用属性 {{cssxref("padding")}},以达到类似于 cellpadding 的效果。
      @@ -214,7 +214,7 @@

       属性

      这个枚举属性定义了在一个表格中规则的显示位置。它可以有以下值::
      • none,这表明没有规格将被显示;这是默认的值;
      • -
      • groups,这将使规则只显示在行组(row groups,通过 {{HTMLElement("thead")}} , {{HTMLElement("tbody")}} 和 {{HTMLElement("tfoot")}} 元素定义)和列组( column groups,通过{{HTMLElement("col")}} 和 {{HTMLElement("colgroup")}} 元素定义)之间
      • +
      • groups,这将使规则只显示在行组(row groups,通过 {{HTMLElement("thead")}} , {{HTMLElement("tbody")}} 和 {{HTMLElement("tfoot")}} 元素定义)和列组(column groups,通过{{HTMLElement("col")}} 和 {{HTMLElement("colgroup")}} 元素定义)之间
      • rows,这将使规则在行之间显示;
      • columns,这将使规则在列之间显示;
      • @@ -238,8 +238,8 @@

         属性

      • Use prose around the table (this method is less semantic).
      • 在表格的 {{HTMLElement("caption")}} 元素中添加描述。
      • 在表格的 {{HTMLElement("caption")}} 元素中,添加一个带有描述的 {{HTMLElement("details")}} 元素。
      • -
      • 将 {{HTMLElement("table")}} 元素包含在一个{{HTMLElement("figure")}} 元素中,并且在旁边添加散文(prose )描述。
      • -
      • 将 {{HTMLElement("table")}} 元素包含在一个{{HTMLElement("figure")}} 元素中,并且在 {{HTMLElement("thead")}} 元素中添加散文(prose )描述。
      • +
      • 将 {{HTMLElement("table")}} 元素包含在一个{{HTMLElement("figure")}} 元素中,并且在旁边添加散文(prose)描述。
      • +
      • 将 {{HTMLElement("table")}} 元素包含在一个{{HTMLElement("figure")}} 元素中,并且在 {{HTMLElement("thead")}} 元素中添加散文(prose)描述。
      • 调整表格,以便不需要这样的描述 (比如,使用 {{HTMLElement("th")}} 和 {{HTMLElement("thead")}} 元素)。
      @@ -474,7 +474,7 @@

      Browser compatibility

      相关

        -
      • 其它表格相关的 HTML 元素: {{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};
      • +
      • 其它表格相关的 HTML 元素:{{HTMLElement("caption")}}, {{HTMLElement("col")}}, {{HTMLElement("colgroup")}}, {{HTMLElement("tbody")}}, {{HTMLElement("td")}}, {{HTMLElement("tfoot")}}, {{HTMLElement("th")}}, {{HTMLElement("thead")}}, {{HTMLElement("tr")}};
      • 可能特别有用的关于设定表格元素样式的 CSS 属性:
        • {{cssxref("width")}} 控制表格的宽度;
        • diff --git a/files/zh-cn/web/html/element/textarea/index.html b/files/zh-cn/web/html/element/textarea/index.html index 82018036864091..18a8b1595b35d2 100644 --- a/files/zh-cn/web/html/element/textarea/index.html +++ b/files/zh-cn/web/html/element/textarea/index.html @@ -66,7 +66,7 @@

          属性

          {{ htmlattrdef("name") }}
          元素的名称。
          {{ htmlattrdef("placeholder") }}
          -
          向用户提示可以在控件中输入的内容。 在渲染提示时,占位符文本中的回车符 (\r) 或换行符 (\n) 一定会被作为行断(换行)处理。
          +
          向用户提示可以在控件中输入的内容。在渲染提示时,占位符文本中的回车符 (\r) 或换行符 (\n) 一定会被作为行断(换行)处理。

          Note: Placeholders should only be used to show an example of the type of data that should be entered into a form; they are not a substitute for a proper {{HTMLElement("label")}} element tied to the input. See {{SectionOnPage("/en-US/docs/Web/HTML/Element/input", "Labels and placeholders")}} for a full explanation.

          diff --git a/files/zh-cn/web/html/element/tfoot/index.html b/files/zh-cn/web/html/element/tfoot/index.html index 3b26d6387044fb..2dd06eaf29f811 100644 --- a/files/zh-cn/web/html/element/tfoot/index.html +++ b/files/zh-cn/web/html/element/tfoot/index.html @@ -21,7 +21,7 @@
      - diff --git a/files/zh-cn/web/html/element/th/index.html b/files/zh-cn/web/html/element/th/index.html index b785ce9ae6ebb8..b7f870c9aac5ce 100644 --- a/files/zh-cn/web/html/element/th/index.html +++ b/files/zh-cn/web/html/element/th/index.html @@ -76,7 +76,7 @@

      属性

      使用提示:不要使用这个属性,因为它已经在最新标准中过时。应该使用 {{htmlattrxref("scope", "th")}} 属性代替。
      {{htmlattrdef("bgcolor")}} {{Non-standard_inline}}
      -
      这个属性定义了每列中每单元格的背景色。它由带有 ‘#’ 前缀的 6 位数的十六进制码组成,并在sRGB中被定义。这个属性可能会用到十六个预定义的颜色字符串儿之一。 +
      这个属性定义了每列中每单元格的背景色。它由带有‘#’前缀的 6 位数的十六进制码组成,并在sRGB中被定义。这个属性可能会用到十六个预定义的颜色字符串儿之一。
      允许的父元素{{HTMLElement("table")}} 元素。{{HTMLElement("tfoot")}} 必须出现在一个或多个 {{HTMLElement("caption")}},{{HTMLElement("colgroup")}},{{HTMLElement("thead")}}, {{HTMLElement("tbody")}},或 {{HTMLElement("tr")}} 元素之后。 注意这是自 HTML5 起有的要求。
      +
      {{HTMLElement("table")}} 元素。{{HTMLElement("tfoot")}} 必须出现在一个或多个 {{HTMLElement("caption")}},{{HTMLElement("colgroup")}},{{HTMLElement("thead")}}, {{HTMLElement("tbody")}},或 {{HTMLElement("tr")}} 元素之后。注意这是自 HTML5 起有的要求。
      {{HTMLVersionInline("4")}} {{HTMLElement("tfoot")}} 元素不能放在任何 {{HTMLElement("tbody")}} 或 {{HTMLElement("tr")}} 元素之后。注意,这与上述 HTML5 的标准相冲突。
      @@ -137,7 +137,7 @@

      属性

      {{htmlattrdef("char")}} {{Deprecated_inline}} in {{HTMLVersionInline("4")}}, {{obsolete_inline}} in {{HTMLVersionInline("5")}}
      列中的内容与<th> 元素中的字母对齐。通常其值包含一个 (.) 来排列数字或者货币值。 如果 {{htmlattrxref("align", "th")}}没有被设置为char,这个属性就会被忽略。 -
      使用提示:不要使用这个属性,因为它已经在最新标准中过时。为了达到同样的效果, 你可以指定该字母为{{cssxref("text-align")}} 属性中的第一个值,或通过 CSS3 中的{{unimplemented_inline}}。
      +
      使用提示:不要使用这个属性,因为它已经在最新标准中过时。为了达到同样的效果,你可以指定该字母为{{cssxref("text-align")}} 属性中的第一个值,或通过 CSS3 中的{{unimplemented_inline}}。
      @@ -160,7 +160,7 @@

      属性

      • row:  表头关联一行中所有的单元格。
      • col: 表头关联一列中所有的单元格。
      • -
      • rowgroup:表头属于一个行组并与其中所有单元格相关联。这些单元格可以被放在表头的左侧或右侧,取决于 {{HTMLElement("table")}} 元素中 dir 属性的值 。
      • +
      • rowgroup:表头属于一个行组并与其中所有单元格相关联。这些单元格可以被放在表头的左侧或右侧,取决于 {{HTMLElement("table")}} 元素中 dir 属性的值。
      • colgroup: 表头属于一个列组并与其中所有单元格相关联。
      • auto
      diff --git a/files/zh-cn/web/html/element/time/index.html b/files/zh-cn/web/html/element/time/index.html index 7d56b055a7b147..c5a1f66a09d9de 100644 --- a/files/zh-cn/web/html/element/time/index.html +++ b/files/zh-cn/web/html/element/time/index.html @@ -7,11 +7,11 @@

      概述

       HTML time 标签 (<time>) 用来表示 24 小时制时间或者公历日期,若表示日期则也可包含时间和时区。

      -

      此元素意在以机器可读的格式表示日期和时间。 有安排日程表功能的应用可以利用这一点。

      +

      此元素意在以机器可读的格式表示日期和时间。有安排日程表功能的应用可以利用这一点。

      用法提示: 如果给定的日期不是正常日期或者在公历中最早的日期之前,请不要使用此元素。
      -
      状态提示: 该元素仍在设计和讨论中 (http://blog.whatwg.org/weekly-time-data)
      +
      状态提示:该元素仍在设计和讨论中 (http://blog.whatwg.org/weekly-time-data)

      使用场景

      @@ -23,7 +23,7 @@

      使用场景

      - + @@ -46,7 +46,7 @@

      属性

      {{ htmlattrdef("datetime") }}
      -
      该属性表示此元素的时间和日期,并且属性值必须是一个有效的日期格式,并可包含时间。 如果此值不能被解析为日期,元素不会有一个关联的时间戳。
      +
      该属性表示此元素的时间和日期,并且属性值必须是一个有效的日期格式,并可包含时间。如果此值不能被解析为日期,元素不会有一个关联的时间戳。
      {{ htmlattrdef("pubdate") }}
      (该属性仍在被 WHATWG 和 W3C 组织设计和讨论中.) This Boolean attribute specifies that the date and time given by the element is the publication date of a document. The document it applies to is either the nearest ancestor article element or the document as a whole (if there is no ancestor article element). If true, the time element must have a corresponding date. Additionally, each time element indicating a publication date must be the only time element that does so for that document.
      diff --git a/files/zh-cn/web/html/element/title/index.html b/files/zh-cn/web/html/element/title/index.html index 30af2452f2c0ec..89b9fdb778733d 100644 --- a/files/zh-cn/web/html/element/title/index.html +++ b/files/zh-cn/web/html/element/title/index.html @@ -58,15 +58,15 @@

      使用说明

      页面标题和 SEO

      -

      页面标题的内容可能对搜索引擎优化({{glossary("SEO")}})具有重要意义。 通常,较长的描述性标题要比简短或一般性标题更好。 标题的内容是搜索引擎算法用来确定在搜索结果中列出页面顺序的组件之一。 同样,标题是初始的 “挂钩”,您可以通过它吸引浏览浏览结果页面的读者的注意力。

      +

      页面标题的内容可能对搜索引擎优化({{glossary("SEO")}})具有重要意义。通常,较长的描述性标题要比简短或一般性标题更好。标题的内容是搜索引擎算法用来确定在搜索结果中列出页面顺序的组件之一。同样,标题是初始的“挂钩”,您可以通过它吸引浏览浏览结果页面的读者的注意力。

      撰写好标题的一些准则和技巧:

        -
      • 避免使用一两个单词的标题。 对于词汇表或参考样式的页面,请使用描述性短语或术语 - 定义对。
      • -
      • 搜索引擎通常显示页面标题的前 55 至 60 个字符。 超出此范围的文本可能会丢失,因此请尽量不要使标题更长。 如果您必须使用较长的标题,请确保重要的部分出现在前面,并且标题中可能要删除的部分中没有关键内容。
      • -
      • 不要使用 “关键字集合”。 如果标题只是单词列表,则算法通常会降低页面在搜索结果中的位置。
      • -
      • 尝试确保您的标题在您自己的网站中尽可能唯一。 标题重复(或几乎重复)可能会导致搜索结果不准确。
      • +
      • 避免使用一两个单词的标题。对于词汇表或参考样式的页面,请使用描述性短语或术语 - 定义对。
      • +
      • 搜索引擎通常显示页面标题的前 55 至 60 个字符。超出此范围的文本可能会丢失,因此请尽量不要使标题更长。如果您必须使用较长的标题,请确保重要的部分出现在前面,并且标题中可能要删除的部分中没有关键内容。
      • +
      • 不要使用“关键字集合”。如果标题只是单词列表,则算法通常会降低页面在搜索结果中的位置。
      • +
      • 尝试确保您的标题在您自己的网站中尽可能唯一。标题重复(或几乎重复)可能会导致搜索结果不准确。

      示例

      @@ -74,13 +74,13 @@

      示例

      <title>Amazing!</title>
       
      -

      本示例建立一个页面,其标题(如显示在窗口顶部或在窗口的选项卡中)为 “Amazing!”。

      +

      本示例建立一个页面,其标题(如显示在窗口顶部或在窗口的选项卡中)为“Amazing!”。

      无障碍问题

      提供描述页面用途的标题值很重要。

      -

      辅助技术用户的常用导航技术是读取页面标题并推断页面包含的内容。 这是因为导航到页面以确定其内容可能是一个耗时且可能引起混乱的过程。

      +

      辅助技术用户的常用导航技术是读取页面标题并推断页面包含的内容。这是因为导航到页面以确定其内容可能是一个耗时且可能引起混乱的过程。

      示例

      diff --git a/files/zh-cn/web/html/element/track/index.html b/files/zh-cn/web/html/element/track/index.html index 0418da554bdfbe..be0c5e631ac8a7 100644 --- a/files/zh-cn/web/html/element/track/index.html +++ b/files/zh-cn/web/html/element/track/index.html @@ -78,7 +78,7 @@

      属性

    • metadata
        -
      • 脚本使用的 track。 对用户不可见。
      • +
      • 脚本使用的 track。对用户不可见。
    • diff --git a/files/zh-cn/web/html/element/u/index.html b/files/zh-cn/web/html/element/u/index.html index ef777fc36767a6..6b2a2a7b6c84c9 100644 --- a/files/zh-cn/web/html/element/u/index.html +++ b/files/zh-cn/web/html/element/u/index.html @@ -10,7 +10,7 @@
      -

      此元素以前在旧版本的 HTML 中称为 “下划线” 元素,但有时仍会以这种方式被滥用。要为文本加下划线,您应该应用包含 CSS {{cssxref("text-decoration")}}属性设置为 underline 的样式。

      +

      此元素以前在旧版本的 HTML 中称为“下划线”元素,但有时仍会以这种方式被滥用。要为文本加下划线,您应该应用包含 CSS {{cssxref("text-decoration")}}属性设置为 underline 的样式。

      {{EmbedInteractiveExample("pages/tabbed/u.html", "tabbed-shorter")}}
      @@ -92,7 +92,7 @@

      HTML

      <p>This paragraph includes a <u class="spelling">wrnogly</u>
       spelled word.</p>
      -

      在 HTML 中,我们看到 <u> 使用了一个类 spelling,用于表示 “wrongly” 一词的拼写错误。

      +

      在 HTML 中,我们看到 <u> 使用了一个类 spelling,用于表示“wrongly”一词的拼写错误。

      CSS

      diff --git a/files/zh-cn/web/html/element/ul/index.html b/files/zh-cn/web/html/element/ul/index.html index 956fa0a4e77d3d..5daa2a4cbcacd6 100644 --- a/files/zh-cn/web/html/element/ul/index.html +++ b/files/zh-cn/web/html/element/ul/index.html @@ -200,7 +200,7 @@

      浏览器兼容性

      参见

        -
      • 其他列表相关的 HTML 元素: {{ HTMLElement("ol") }}, {{ HTMLElement("li") }}, {{ HTMLElement("menu") }} 和绝对元素 {{ HTMLElement("dir") }};
      • +
      • 其他列表相关的 HTML 元素:{{ HTMLElement("ol") }}, {{ HTMLElement("li") }}, {{ HTMLElement("menu") }} 和绝对元素 {{ HTMLElement("dir") }};
      • 特别作用于 <ul>元素的 CSS 属性:
        •  list-style 属性,作用于选择哪种序数的样式来显示,
        • diff --git a/files/zh-cn/web/html/element/video/index.html b/files/zh-cn/web/html/element/video/index.html index bd7879c96b124f..d889e2378db893 100644 --- a/files/zh-cn/web/html/element/video/index.html +++ b/files/zh-cn/web/html/element/video/index.html @@ -39,7 +39,7 @@

          属性

          布尔属性;声明该属性后,视频会尽快自动开始播放,不会停下来等待数据全部加载完成。

          -

          注意: 自动播放音频(或有声视频)可能会破坏用户体验,所以应该尽可能避免。如果你一定要提供自动播放功能,你应该加入开关(让用户主动打开自动播放)。然而,如果需要创建一些媒体元素,其播放源由用户在稍后设置,自动播放就会很有用。想了解如果正确使用自动播放,可参见我们的 自动播放指南

          +

          注意:自动播放音频(或有声视频)可能会破坏用户体验,所以应该尽可能避免。如果你一定要提供自动播放功能,你应该加入开关(让用户主动打开自动播放)。然而,如果需要创建一些媒体元素,其播放源由用户在稍后设置,自动播放就会很有用。想了解如果正确使用自动播放,可参见我们的 自动播放指南

          如果使用 autoplay="false" 来关闭视频的自动播放功能,会不起作用;只要 <video> 标签中有 autoplay 属性,视频就会自动播放。要移除自动播放,需要完全删除该属性

          在某些浏览器(例如 Chrome 70.0)中,如果没有设置 muted 属性,autoplay 将不会生效。

          @@ -64,11 +64,11 @@

          属性

          该枚举属性指明是否使用 CORS(跨域资源共享)来获取相关视频。允许 CORS 的资源 可在 {{HTMLElement("canvas")}} 元素中被重用,而不会被污染。允许的值如下:
          anonymous
          -
          在发送跨域请求时不携带凭证(credential)信息。也就是说,浏览器在发送 Origin: HTTP 请求首部时将不会携带 cookie、 X.509 安全令牌、也不会执行任何 HTTP 基本身份验证。如果服务器没有给予源站点信任(也就是说没有设置 Access-Control-Allow-Origin: HTTP 响应首部),图像会被 污染,并且它的使用会受到限制。
          +
          在发送跨域请求时不携带凭证(credential)信息。也就是说,浏览器在发送 Origin: HTTP 请求首部时将不会携带 cookie、X.509 安全令牌、也不会执行任何 HTTP 基本身份验证。如果服务器没有给予源站点信任(也就是说没有设置 Access-Control-Allow-Origin: HTTP 响应首部),图像会被 污染,并且它的使用会受到限制。
          use-credentials
          在发送跨域请求时携带凭证(credential)信息。也就是说,浏览器在发送 Origin: HTTP 请求首部时将会携带 cookie、安全令牌、并且执行 HTTP 基本身份验证。如果服务器没有给予源站点信任(通过设置 Access-Control-Allow-Credentials: HTTP 响应首部),图像会被 污染,并且它的使用会受到限制。
          -

          不加这个属性时,获取资源不会使用 CORS 请求(即不会发送 Origin: HTTP 请求首部),保证其在 {{HTMLElement('canvas')}} 元素中使用时不会被污染。如果指定非法值,会被当作指定了枚举关键字 anonymous 一样使用。 查看 CORS 设置属性 获取更多信息。

          +

          不加这个属性时,获取资源不会使用 CORS 请求(即不会发送 Origin: HTTP 请求首部),保证其在 {{HTMLElement('canvas')}} 元素中使用时不会被污染。如果指定非法值,会被当作指定了枚举关键字 anonymous 一样使用。查看 CORS 设置属性 获取更多信息。

          {{htmlattrdef("disablepictureinpicture")}} {{experimental_inline}}
          @@ -107,7 +107,7 @@

          属性

        每个浏览器的默认值都不相同,即使规范建议设置为 metadata

        - 注意: + 注意:
        • autoplay 属性的优先级比 preload 高。如果制定了 autopaly属性,浏览器显然需要开始下载视频以便回放。
        • 规范没有强制浏览器去遵循该属性的值,这仅仅只是个提示。
        • @@ -116,7 +116,7 @@

          属性

          {{htmlattrdef("src")}}
          -
          要嵌到页面的视频的URL。可选;你也可以使用 video 块内的 {{HTMLElement("source")}} 元素来指定需要嵌到页面的视频。
          +
          要嵌到页面的视频的 URL。可选;你也可以使用 video 块内的 {{HTMLElement("source")}} 元素来指定需要嵌到页面的视频。
          {{htmlattrdef("width")}}
          视频显示区域的宽度,单位是 CSS 像素(仅限绝对值;不支持百分比)。
          @@ -202,7 +202,7 @@

          事件

      - + @@ -240,7 +240,7 @@

      使用说明

      • 如果你没有指定 controls 属性,那么视频不会展示浏览器自带的控件,你也可以用 JavaScript 和 {{domxref("HTMLMediaElement")}} API 来创建你自己的控件。详情请见Creating a cross-browser video player
      • HTMLMediaElement 会激活许多不同的事件,以便于让你可以控制视频(和音频)内容。
      • -
      • 你可以用CSS 属性 {{cssxref("object-position")}} 来调整视频在元素内部的位置,它可以控制视频尺寸适应于元素外框的方式。
      • +
      • 你可以用 CSS 属性 {{cssxref("object-position")}} 来调整视频在元素内部的位置,它可以控制视频尺寸适应于元素外框的方式。
      • 如果想在视频里展示字幕或者标题,你可以在 {{htmlelement("track")}} 元素和 WebVTT 格式的基础上使用 JavaScript 来实现。详情请见 Adding captions and subtitles to HTML5 video
      @@ -262,7 +262,7 @@

      例子

      </video> -

      第一个例子播放一个视频,视频一收到,允许播放的时候就会立马开始播放,而不会停下来直到下载更多内容。 图片 "posterimage.jpg" 会一直展示在视频区域,直到开始播放。

      +

      第一个例子播放一个视频,视频一收到,允许播放的时候就会立马开始播放,而不会停下来直到下载更多内容。图片 "posterimage.jpg" 会一直展示在视频区域,直到开始播放。

      第二个例子允许用户选择不同的字幕。

      @@ -270,14 +270,14 @@

      服务器支持

      如果视频的 MIME 类型设置不正确,视频可能不会显示,或者显示包含一个 X 的灰色盒子(如果启用了 JavaScript 的话)。

      -

      如果你提供的视频是 Ogg Theora 格式的,在 Apache Web 服务器上, 你可以通过 "/etc/apache" 中的 "mime.types" 文件 或者通过在 httpd.conf 中的 “AddType 的” 配置指令,把视频文件的扩展名 (最常见的是".ogm", ".ogv", or ".ogg") 添加到 MIME 类型 "video/ogg", 来解决这个问题。

      +

      如果你提供的视频是 Ogg Theora 格式的,在 Apache Web 服务器上,你可以通过 "/etc/apache" 中的 "mime.types" 文件 或者通过在 httpd.conf 中的“AddType 的”配置指令,把视频文件的扩展名 (最常见的是".ogm", ".ogv", or ".ogg") 添加到 MIME 类型 "video/ogg",来解决这个问题。

      AddType video/ogg .ogm
       AddType video/ogg .ogv
       AddType video/ogg .ogg
       
      -

      如果你以 WebM 格式提供视频,在 Apache Web 服务器上,你可以通过 "/etc/apache" 中的 "mime.types" 文件 或者通过在 httpd.conf 中的 “AddType 的” 配置指令,把视频文件的扩展名 (最常见的是".webm") 添加到 MIME 类型 "video/webm", 来解决这个问题。

      +

      如果你以 WebM 格式提供视频,在 Apache Web 服务器上,你可以通过 "/etc/apache" 中的 "mime.types" 文件 或者通过在 httpd.conf 中的“AddType 的”配置指令,把视频文件的扩展名 (最常见的是".webm") 添加到 MIME 类型 "video/webm",来解决这个问题。

      AddType video/webm .webm
       
      diff --git a/files/zh-cn/web/html/global_attributes/contextmenu/index.html b/files/zh-cn/web/html/global_attributes/contextmenu/index.html index 83746dfcf7a74a..ffac8d8ceb7985 100644 --- a/files/zh-cn/web/html/global_attributes/contextmenu/index.html +++ b/files/zh-cn/web/html/global_attributes/contextmenu/index.html @@ -18,7 +18,7 @@
       
      -
      上下文菜单是指在用户交互(例如右键点击)时出现的菜单。 HTML5 允许我们自定义此菜单。 这里有一些实现示例,包括嵌套菜单。
      +
      上下文菜单是指在用户交互(例如右键点击)时出现的菜单。HTML5 允许我们自定义此菜单。这里有一些实现示例,包括嵌套菜单。

      示例

      diff --git a/files/zh-cn/web/html/global_attributes/data-_star_/index.html b/files/zh-cn/web/html/global_attributes/data-_star_/index.html index 5cb7ee719fd071..9ed56ab66f00c6 100644 --- a/files/zh-cn/web/html/global_attributes/data-_star_/index.html +++ b/files/zh-cn/web/html/global_attributes/data-_star_/index.html @@ -51,7 +51,7 @@

      规范

      - + diff --git a/files/zh-cn/web/html/global_attributes/draggable/index.html b/files/zh-cn/web/html/global_attributes/draggable/index.html index 72af48d5825361..b6f0d569ec5ff1 100644 --- a/files/zh-cn/web/html/global_attributes/draggable/index.html +++ b/files/zh-cn/web/html/global_attributes/draggable/index.html @@ -14,7 +14,7 @@
    • false,表示元素不可以被拖动
    • -

      如果该属性没有设值,则默认值 为 auto ,表示使用浏览器定义的默认行为。

      +

      如果该属性没有设值,则默认值 为 auto,表示使用浏览器定义的默认行为。

      这个属性是枚举类型,而不是 布尔类型 。这意味着必须显式指定值为 true 或者 false ,像 <label draggable>Example Label</label> 这样的简写是不允许的。正确的用法是 <label draggable="true">Example Label</label>。

      diff --git a/files/zh-cn/web/html/global_attributes/hidden/index.html b/files/zh-cn/web/html/global_attributes/hidden/index.html index f761481304aa79..bdc13f88db8ed3 100644 --- a/files/zh-cn/web/html/global_attributes/hidden/index.html +++ b/files/zh-cn/web/html/global_attributes/hidden/index.html @@ -11,7 +11,7 @@

      隐藏元素不应与非隐藏元素链接,作为隐藏元素的后代的元素仍然是活动的,这意味着脚本元素仍然可以执行,表单元素仍然可以提交。

      -

      比如说,用 href 标签链接到一个带有 hidden 标签的区块是不对的。 如果这个区块和这个页面不相干,或者这个区块不适用于这个页面,那没有任何理由需要链接到它。

      +

      比如说,用 href 标签链接到一个带有 hidden 标签的区块是不对的。如果这个区块和这个页面不相干,或者这个区块不适用于这个页面,那没有任何理由需要链接到它。

      不过,你还是可以使用 ARIA aria-describedby 标签去引用本身是隐藏的一些描述。

      diff --git a/files/zh-cn/web/html/global_attributes/index.html b/files/zh-cn/web/html/global_attributes/index.html index a1097e258a9582..4c3d6ba1a38765 100644 --- a/files/zh-cn/web/html/global_attributes/index.html +++ b/files/zh-cn/web/html/global_attributes/index.html @@ -70,7 +70,7 @@

      全局属性列表  

      {{htmlattrdef("dropzone")}} {{experimental_inline}}
      -
      枚举属性,指示可以使用 Drag and Drop API 在元素上删除哪些类型的内容。 它可以具有以下值: +
      枚举属性,指示可以使用 Drag and Drop API 在元素上删除哪些类型的内容。它可以具有以下值:
      • copy,表示 drop 将创建被拖动元素的副本
      • move,表示拖动的元素将移动到此新位置。
      • @@ -82,7 +82,7 @@

        全局属性列表  

        {{htmlattrdef("hidden")}}
        布尔属性表示该元素尚未或不再相关。例如,它可用于隐藏在登录过程完成之前无法使用的页面元素。浏览器不会呈现此类元素。不得使用此属性隐藏可合法显示的内容
        {{htmlattrdef("id")}}
        -
        定义唯一标识符(ID),该标识符在整个文档中必须是唯一的。 其目的是在链接(使用片段标识符),脚本或样式(使用 CSS)时标识元素。
        +
        定义唯一标识符(ID),该标识符在整个文档中必须是唯一的。其目的是在链接(使用片段标识符),脚本或样式(使用 CSS)时标识元素。
        {{HTMLAttrDef("inputmode")}}
        向浏览器提供有关在编辑此元素或其内容时要使用的虚拟键盘配置类型的提示。主要用于 {{HTMLElement("input")}}元素,但在{{HTMLAttrxRef("contenteditable")}}模式下可用于任何元素。
        {{htmlattrdef("is")}}
        @@ -97,7 +97,7 @@

        全局属性列表  

        {{htmlattrdef("itemid")}}
        项的唯一全局标识符。
        {{htmlattrdef("itemprop")}}
        -
        用于向项添加属性。 每个 HTML 元素都可以指定一个 itemprop 属性,其中一个 itemprop 由一个名称和值对组成。
        +
        用于向项添加属性。每个 HTML 元素都可以指定一个 itemprop 属性,其中一个 itemprop 由一个名称和值对组成。
        {{htmlattrdef("itemref")}}
        只有不是具有itemscope属性的元素的后代,它的属性才可以与使用itemref项目相关联。它提供了元素 ID 列表(而不是itemids)以及文档中其他位置的其他属性。
        {{htmlattrdef("itemscope")}}
        @@ -125,7 +125,7 @@

        全局属性列表  

      {{htmlattrdef("style")}}
      -
      含要应用于元素的CSS样式声明。 请注意,建议在单独的文件中定义样式。 该属性和{{HTMLElement("style")}}元素主要用于快速样式化,例如用于测试目的。
      +
      含要应用于元素的CSS样式声明。请注意,建议在单独的文件中定义样式。该属性和{{HTMLElement("style")}}元素主要用于快速样式化,例如用于测试目的。
      {{htmlattrdef("tabindex")}}
      整数属性,指示元素是否可以获取输入焦点(可聚焦),是否应该参与顺序键盘导航,如果是,则表示哪个位置。它可能需要几个值:
        @@ -135,7 +135,7 @@

        全局属性列表  

      {{htmlattrdef("title")}}
      -
      包含表示与其所属元素相关信息的文本。 这些信息通常可以作为提示呈现给用户,但不是必须的。
      +
      包含表示与其所属元素相关信息的文本。这些信息通常可以作为提示呈现给用户,但不是必须的。
      {{htmlattrdef("translate")}} {{experimental_inline}}
      枚举属性,用于指定在页面本地化时是否转换元素的属性值及其{{domxref("Text")}} 节点子节点的值,或者是否保持它们不变。它可以具有以下值:
        diff --git a/files/zh-cn/web/html/global_attributes/itemprop/index.html b/files/zh-cn/web/html/global_attributes/itemprop/index.html index 9ce31d9136678d..1de91211bf66e8 100644 --- a/files/zh-cn/web/html/global_attributes/itemprop/index.html +++ b/files/zh-cn/web/html/global_attributes/itemprop/index.html @@ -5,7 +5,7 @@ ---
        {{HTMLSidebar("Global_attributes")}}
        -

        全局属性 itemprop被用于向一个物体中添加属性。每一个 HTML 元素都可以指定一个 itemprop 属性,一个itemprop属性由 name-value 对组成。每一个键值对称为一个属性,一个元素可以有一个或者多个属性。属性值可以是一个 string 或者一个 URL,并且可以和大部分元素进行组合,包括{{HTMLElement("audio")}}, {{HTMLElement("embed")}}, {{HTMLElement("iframe")}}, {{HTMLElement("img")}}, {{HTMLElement("link")}}, {{HTMLElement("object")}}, {{HTMLElement("source")}} , {{HTMLElement("track")}}, 和 {{HTMLElement("video")}}。

        +

        全局属性 itemprop被用于向一个物体中添加属性。每一个 HTML 元素都可以指定一个 itemprop 属性,一个itemprop属性由 name-value 对组成。每一个键值对称为一个属性,一个元素可以有一个或者多个属性。属性值可以是一个 string 或者一个 URL,并且可以和大部分元素进行组合,包括{{HTMLElement("audio")}}, {{HTMLElement("embed")}}, {{HTMLElement("iframe")}}, {{HTMLElement("img")}}, {{HTMLElement("link")}}, {{HTMLElement("object")}}, {{HTMLElement("source")}} , {{HTMLElement("track")}},和 {{HTMLElement("video")}}。

        样例

        @@ -134,7 +134,7 @@

        All the properties separated from their items

        @@ -274,7 +274,7 @@

        Names examples

        -

        注意: 上面的规则不允许 ":" 在没有 URL 的值中 是因为否则它们没法和 URL 作区分。带有"." 的值被保留作为将来可能的拓展。 空格也不被允许是因为否则值就会被解析为多个序列。

        +

        注意: 上面的规则不允许 ":" 在没有 URL 的值中 是因为否则它们没法和 URL 作区分。带有"." 的值被保留作为将来可能的拓展。空格也不被允许是因为否则值就会被解析为多个序列。

        diff --git a/files/zh-cn/web/html/global_attributes/itemscope/index.html b/files/zh-cn/web/html/global_attributes/itemscope/index.html index 62c6e70fb10dc4..a6a78df255a307 100644 --- a/files/zh-cn/web/html/global_attributes/itemscope/index.html +++ b/files/zh-cn/web/html/global_attributes/itemscope/index.html @@ -10,7 +10,7 @@

        每个 HTML 元素都可以有指定的 itemscope 属性。一个具有 itemscope 属性的元素可以没有关联的 itemtype ,但必须有相关的 itemref

        -

        译者注: Schema.org 提供了一份共享的词汇表,站长可以使用它来标记网页,而这些标记则被主要的搜索引擎: Google, Microsoft, Yandex 和 Yahoo!所支持。

        +

        译者注: Schema.org 提供了一份共享的词汇表,站长可以使用它来标记网页,而这些标记则被主要的搜索引擎:Google,Microsoft,Yandex 和 Yahoo!所支持。

        @@ -21,7 +21,7 @@

        简单示例

        HTML

        -

        下面一个例子指定的 itemscope 属性,设置了 itemtype 为 "http://schema.org/Movie", 并且有 3 个关联的 itemprop 属性(name、director、genre)。

        +

        下面一个例子指定的 itemscope 属性,设置了 itemtype 为 "http://schema.org/Movie",并且有 3 个关联的 itemprop 属性(name、director、genre)。

        <div itemscope itemtype ="http://schema.org/Movie">
           <h1 itemprop="name">Avatar</h1>
        diff --git a/files/zh-cn/web/html/global_attributes/lang/index.html b/files/zh-cn/web/html/global_attributes/lang/index.html
        index 0cdba5960ee1ca..c8e9638f0fe33c 100644
        --- a/files/zh-cn/web/html/global_attributes/lang/index.html
        +++ b/files/zh-cn/web/html/global_attributes/lang/index.html
        @@ -17,7 +17,7 @@ 

        语言标签语法

        完整的 BCP47 语法足以标记极其特定的语言方言,但大多数用法都要简单得多。

        -

        语言标记由连字符分隔的语言子标签组成,其中每个子标签指示该语言的特定属性。 3 个最常见的子标签是:

        +

        语言标记由连字符分隔的语言子标签组成,其中每个子标签指示该语言的特定属性。3 个最常见的子标签是:

        语言子标签
        diff --git a/files/zh-cn/web/html/global_attributes/part/index.html b/files/zh-cn/web/html/global_attributes/part/index.html index 6a0b8f9aef54d8..e470b092820f39 100644 --- a/files/zh-cn/web/html/global_attributes/part/index.html +++ b/files/zh-cn/web/html/global_attributes/part/index.html @@ -5,7 +5,7 @@ ---
        {{HTMLSidebar("Global_attributes")}}
        -

        part 全局属性 包含一个以元素中 part 属性名称组成的列表,该列表以空格分隔。通过 Part 的名称,可以使用 CSS 伪元素“::part”来选择 shadow 树中指定元素并设置其样式 。

        +

        part 全局属性 包含一个以元素中 part 属性名称组成的列表,该列表以空格分隔。通过 Part 的名称,可以使用 CSS 伪元素“::part”来选择 shadow 树中指定元素并设置其样式。

        参见用例 Shadow part 实例.

        diff --git a/files/zh-cn/web/html/link_types/index.html b/files/zh-cn/web/html/link_types/index.html index 0b02c8db29b383..a20efcbdcf86a8 100644 --- a/files/zh-cn/web/html/link_types/index.html +++ b/files/zh-cn/web/html/link_types/index.html @@ -41,7 +41,7 @@

        (译注:link 的 alternate 定义了一个可替换的样式表,它和第一个 link 元素同时使用,第一个定义了首选样式,而 alternate 则让用户可选择替换的样式。但这个替换操作需要 浏览器支持,但很多浏览器比如 IE 都是不支持的。

        -

        所以使用到替换样式的网页,一般都用一些样式表切换的 JS,让用户可以自由切换界面样式。这个应该大家都见过,一些网站会给网页定义多种配色。 稍高阶的一些,还可以利用 JS 弄成随时间变化样式的,比如白天的时候显示成明色,晚上的时候显示成暗色。)

        +

        所以使用到替换样式的网页,一般都用一些样式表切换的 JS,让用户可以自由切换界面样式。这个应该大家都见过,一些网站会给网页定义多种配色。稍高阶的一些,还可以利用 JS 弄成随时间变化样式的,比如白天的时候显示成明色,晚上的时候显示成暗色。)

      @@ -241,7 +241,7 @@ @@ -259,7 +259,7 @@ @@ -318,7 +318,7 @@ diff --git a/files/zh-cn/web/html/microdata/index.html b/files/zh-cn/web/html/microdata/index.html index 56bfe94014b831..60033e04751155 100644 --- a/files/zh-cn/web/html/microdata/index.html +++ b/files/zh-cn/web/html/microdata/index.html @@ -24,7 +24,7 @@

      词汇表

      注意: 有关 itemtype 属性的更多信息,请访问http://schema.org/Thing

      -

      微数据词汇表提供了项目的语义或含义。 Web 开发人员可以设计自定义词汇表或使用 Web 上可用的词汇表,例如广泛使用的schema.org 词汇表。 schema.org 提供了一组常用的标记词汇表。

      +

      微数据词汇表提供了项目的语义或含义。Web 开发人员可以设计自定义词汇表或使用 Web 上可用的词汇表,例如广泛使用的schema.org 词汇表。 schema.org 提供了一组常用的标记词汇表。

      常用词汇:

      @@ -55,9 +55,9 @@

      全局属性

      itemprop – 用于向项添加属性。每个 HTML 元素都可以指定一个 itemprop 属性,其中 itemprop 由一个名称和值对组成。

      -

      itemref – 不具有itemscope属性的元素的后代的属性可以使用itemref与项目相关联。 Itemref 提供了元素 id 列表(而不是itemids)以及文档中其他位置的其他属性。

      +

      itemref – 不具有itemscope属性的元素的后代的属性可以使用itemref与项目相关联。Itemref 提供了元素 id 列表(而不是itemids)以及文档中其他位置的其他属性。

      -

      itemscope – Itemscope(通常)与itemtype一起使用,以指定块中包含的关于特定项目的 HTML。 itemscope 创建 Item 并定义与之关联的 itemtype 的范围。 itemtype 是描述项及其属性上下文的词汇表(例如schema.org)的有效 URL。

      +

      itemscope – Itemscope(通常)与itemtype一起使用,以指定块中包含的关于特定项目的 HTML。itemscope 创建 Item 并定义与之关联的 itemtype 的范围。itemtype 是描述项及其属性上下文的词汇表(例如schema.org)的有效 URL。

      itemtype – 指定将用于在数据结构中定义 itemprop(项属性)的词汇表的 URL。 Itemscope 用于设置数据结构中按 itemtype 设置的词汇表的有效范围。

      diff --git a/files/zh-cn/web/html/reference/index.html b/files/zh-cn/web/html/reference/index.html index 7fa03698306e90..32574bd36b7f45 100644 --- a/files/zh-cn/web/html/reference/index.html +++ b/files/zh-cn/web/html/reference/index.html @@ -18,7 +18,7 @@

      内容

      HTML 元素参考
      -
      此页面列出了所有 tag 创建的 HTML elements 。它们按功能分组,以帮助您轻松找到想要的内容。页面左侧边栏中列出了所有元素,当然也包含在了这个页面中。
      +
      此页面列出了所有 tag 创建的 HTML elements。它们按功能分组,以帮助您轻松找到想要的内容。页面左侧边栏中列出了所有元素,当然也包含在了这个页面中。
      HTML 属性参考
      HTML 中的元素是有属性的;这些额外的属性值可以配置元素或者以各种方式来调整元素的行为,进而满足用户所需的标准。
      全局属性
      diff --git a/files/zh-cn/web/http/authentication/index.html b/files/zh-cn/web/http/authentication/index.html index 6db3304f80d2a9..9f0edd363597b7 100644 --- a/files/zh-cn/web/http/authentication/index.html +++ b/files/zh-cn/web/http/authentication/index.html @@ -57,7 +57,7 @@

      验证方案

      通用 HTTP 身份验证框架可以被多个验证方案使用。不同的验证方案会在安全强度以及在客户端或服务器端软件中可获得的难易程度上有所不同。

      -

      最常见的验证方案是“基本验证方案”("Basic"),该方案会在下面进行详细阐述。 IANA 维护了一系列的验证方案,除此之外还有其他类型的验证方案由虚拟主机服务提供,例如 Amazon AWS 。常见的验证方案包括:

      +

      最常见的验证方案是“基本验证方案”("Basic"),该方案会在下面进行详细阐述。IANA 维护了一系列的验证方案,除此之外还有其他类型的验证方案由虚拟主机服务提供,例如 Amazon AWS。常见的验证方案包括:

      • Basic (查看 {{rfc(7617)}},base64 编码凭证。详情请参阅下文.),
      • @@ -80,7 +80,7 @@

        基本验证方案的安全性

        使用 Apache 限制访问和基本身份验证

        -

        要对 Apache 服务器上的目录进行密码保护, 你需要一个 .htaccess 和 a .htpasswd 文件。

        +

        要对 Apache 服务器上的目录进行密码保护,你需要一个 .htaccess 和 a .htpasswd 文件。

        .htaccess 文件格式通常看起来像这样:

        @@ -89,7 +89,7 @@

        使用 Apache 限制访 AuthUserFile /path/to/.htpasswd Require valid-user -

        .htaccess 文件引用一个 .htpasswd 文件,其中每行用冒号(“:”)分隔的用户名和密码。你不能看到真实的密码因为它们是 encrypted (在这个例子中是使用了 MD5). 你可以命名.htpasswd 文件 为你所喜欢的名字,但是应该保证这个文件不被其他人访问. (Apache 通常配置阻止访问 .ht* 类的文件).

        +

        .htaccess 文件引用一个 .htpasswd 文件,其中每行用冒号(“:”)分隔的用户名和密码。你不能看到真实的密码因为它们是 encrypted (在这个例子中是使用了 MD5). 你可以命名.htpasswd 文件 为你所喜欢的名字,但是应该保证这个文件不被其他人访问。(Apache 通常配置阻止访问 .ht* 类的文件).

        aladdin:$apr1$ZjTqBB3f$IF9gdYAGlMrs2fuINjHsz.
         user2:$apr1$O04r.y2H$/vEkesPhVInBByJUkXitA/
        @@ -112,7 +112,7 @@ 

        使用 URL
        https://username:password@www.example.com/
        -

        这种 URL 是不赞成使用的。在 Chrome 中, URL 中的 username:password@ 部分甚至会因为安全原因而被移除。Firefox 则会检查该站点是否真的需要身份验证,假如不是,则会弹出一个警告窗口:你即将使用用户名 “username” 登录  ”www.example.com“  站点,但是该站点不需要进行身份验证。这可能是在试图进行欺诈。

        +

        这种 URL 是不赞成使用的。在 Chrome 中,URL 中的 username:password@ 部分甚至会因为安全原因而被移除。Firefox 则会检查该站点是否真的需要身份验证,假如不是,则会弹出一个警告窗口:你即将使用用户名“username”登录  ”www.example.com“  站点,但是该站点不需要进行身份验证。这可能是在试图进行欺诈。

        相关内容

        diff --git a/files/zh-cn/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.html b/files/zh-cn/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.html index e1bf9482eedd5a..9bb230ba334fd2 100644 --- a/files/zh-cn/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.html +++ b/files/zh-cn/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.html @@ -32,7 +32,7 @@

        规范网址方式

        使用 HTTP 301 重定向

        -

        在这种情况下,你需要配置服务器接收的 HTTP 请求( 常见为 www 和非 www 网址相同)以及适当的 HTTP 响应 {{HTTPStatus(301)}} 去响应所有非规范的域名请求。这会将尝试使访问非规范网址的浏览器重定向到其规范的等效网址。举例来说,如果您选择使用非 www 网址为规范类型,你的所有 www 网址都应该被重定向到对应的非 www 网址上。

        +

        在这种情况下,你需要配置服务器接收的 HTTP 请求(常见为 www 和非 www 网址相同)以及适当的 HTTP 响应 {{HTTPStatus(301)}} 去响应所有非规范的域名请求。这会将尝试使访问非规范网址的浏览器重定向到其规范的等效网址。举例来说,如果您选择使用非 www 网址为规范类型,你的所有 www 网址都应该被重定向到对应的非 www 网址上。

        例如:

        diff --git a/files/zh-cn/web/http/basics_of_http/evolution_of_http/index.html b/files/zh-cn/web/http/basics_of_http/evolution_of_http/index.html index 6d619f50473afe..5a7b70b562d5fa 100644 --- a/files/zh-cn/web/http/basics_of_http/evolution_of_http/index.html +++ b/files/zh-cn/web/http/basics_of_http/evolution_of_http/index.html @@ -12,7 +12,7 @@

        万维网的发明

        -

        1989 年, 当时在 CERN 工作的 Tim Berners-Lee 博士写了一份关于建立一个通过网络传输超文本系统的报告。这个系统起初被命名为 Mesh,在随后的 1990 年项目实施期间被更名为万维网(World Wide Web)。它在现有的 TCP 和 IP 协议基础之上建立,由四个部分组成:

        +

        1989 年,当时在 CERN 工作的 Tim Berners-Lee 博士写了一份关于建立一个通过网络传输超文本系统的报告。这个系统起初被命名为 Mesh,在随后的 1990 年项目实施期间被更名为万维网(World Wide Web)。它在现有的 TCP 和 IP 协议基础之上建立,由四个部分组成:

        • 一个用来表示超文本文档的文本格式,超文本标记语言(HTML)。
        • @@ -27,7 +27,7 @@

          万维网的发明

          HTTP/0.9 – 单行协议

          -

          最初版本的 HTTP 协议并没有版本号,后来它的版本号被定位在 0.9 以区分后来的版本。 HTTP/0.9 极其简单:请求由单行指令构成,以唯一可用方法{{HTTPMethod("GET")}}开头,其后跟目标资源的路径(一旦连接到服务器,协议、服务器、端口号这些都不是必须的)。

          +

          最初版本的 HTTP 协议并没有版本号,后来它的版本号被定位在 0.9 以区分后来的版本。HTTP/0.9 极其简单:请求由单行指令构成,以唯一可用方法{{HTTPMethod("GET")}}开头,其后跟目标资源的路径(一旦连接到服务器,协议、服务器、端口号这些都不是必须的)。

          GET /mypage.html
          @@ -92,7 +92,7 @@

          HTTP/1.1 – 标准化的协议

        • 凭借{{HTTPHeader("Host")}}头,能够使不同域名配置在同一个 IP 地址的服务器上。
        -

        一个典型的请求流程, 所有请求都通过一个连接实现,看起来就像这样:

        +

        一个典型的请求流程,所有请求都通过一个连接实现,看起来就像这样:

        GET /en-US/docs/Glossary/Simple_header HTTP/1.1
         Host: developer.mozilla.org
        @@ -145,15 +145,15 @@ 

        超过 15 年的扩展

        HTTP 用于安全传输

        -

        HTTP 最大的变化发生在 1994 年底。HTTP 在基本的 TCP/IP 协议栈上发送信息,网景公司(Netscape Communication)在此基础上创建了一个额外的加密传输层:SSL 。SSL 1.0 没有在公司以外发布过,但 SSL 2.0 及其后继者 SSL 3.0 和 SSL 3.1 允许通过加密来保证服务器和客户端之间交换消息的真实性,来创建电子商务网站。SSL 在标准化道路上最终成为 TLS,随着版本 1.0, 1.1, 1.2 的出现成功地关闭漏洞。TLS 1.3 目前正在形成。

        +

        HTTP 最大的变化发生在 1994 年底。HTTP 在基本的 TCP/IP 协议栈上发送信息,网景公司(Netscape Communication)在此基础上创建了一个额外的加密传输层:SSL。SSL 1.0 没有在公司以外发布过,但 SSL 2.0 及其后继者 SSL 3.0 和 SSL 3.1 允许通过加密来保证服务器和客户端之间交换消息的真实性,来创建电子商务网站。SSL 在标准化道路上最终成为 TLS,随着版本 1.0, 1.1, 1.2 的出现成功地关闭漏洞。TLS 1.3 目前正在形成。

        与此同时,人们对一个加密传输层的需求也愈发高涨:因为 Web 最早几乎是一个学术网络,相对信任度很高,但如今不得不面对一个险恶的丛林:广告客户、随机的个人或者犯罪分子争相劫取个人信息,将信息占为己有,甚至改动将要被传输的数据。随着通过 HTTP 构建的应用程序变得越来越强大,可以访问越来越多的私人信息,如地址簿,电子邮件或用户的地理位置,即使在电子商务使用之外,对 TLS 的需求也变得普遍。

        HTTP 用于复杂应用

        -

        Tim Berners-Lee 对于 Web 的最初设想不是一个只读媒体。 他设想一个 Web 是可以远程添加或移动文档,是一种分布式文件系统。 大约 1996 年,HTTP 被扩展到允许创作,并且创建了一个名为 WebDAV 的标准。 它进一步扩展了某些特定的应用程序,如 CardDAV 用来处理地址簿条目,CalDAV 用来处理日历。 但所有这些 *DAV 扩展有一个缺陷:它们必须由要使用的服务器来实现,这是非常复杂的。并且他们在网络领域的使用必须保密。

        +

        Tim Berners-Lee 对于 Web 的最初设想不是一个只读媒体。他设想一个 Web 是可以远程添加或移动文档,是一种分布式文件系统。大约 1996 年,HTTP 被扩展到允许创作,并且创建了一个名为 WebDAV 的标准。它进一步扩展了某些特定的应用程序,如 CardDAV 用来处理地址簿条目,CalDAV 用来处理日历。但所有这些 *DAV 扩展有一个缺陷:它们必须由要使用的服务器来实现,这是非常复杂的。并且他们在网络领域的使用必须保密。

        -

        在 2000 年,一种新的使用 HTTP 的模式被设计出来:{{glossary("REST", "representational state transfer")}} (或者说 REST)。 由 API 发起的操作不再通过新的 HTTP 方法传达,而只能通过使用基本的 HTTP / 1.1 方法访问特定的 URI。 这允许任何 Web 应用程序通过提供 API 以允许查看和修改其数据,而无需更新浏览器或服务器:所有需要的内容都被嵌入到由网站通过标准 HTTP/1.1 提供的文件中。 REST 模型的缺点在于每个网站都定义了自己的非标准 RESTful API,并对其进行了全面的控制;不同于 *DAV 扩展,客户端和服务器是可互操作的。 RESTful API 在 2010 年变得非常流行。

        +

        在 2000 年,一种新的使用 HTTP 的模式被设计出来:{{glossary("REST", "representational state transfer")}} (或者说 REST)。由 API 发起的操作不再通过新的 HTTP 方法传达,而只能通过使用基本的 HTTP / 1.1 方法访问特定的 URI。这允许任何 Web 应用程序通过提供 API 以允许查看和修改其数据,而无需更新浏览器或服务器:所有需要的内容都被嵌入到由网站通过标准 HTTP/1.1 提供的文件中。REST 模型的缺点在于每个网站都定义了自己的非标准 RESTful API,并对其进行了全面的控制;不同于 *DAV 扩展,客户端和服务器是可互操作的。RESTful API 在 2010 年变得非常流行。

        自 2005 年以来,可用于 Web 页面的 API 大大增加,其中几个 API 为特定目的扩展了 HTTP 协议,大部分是新的特定 HTTP 头:

        diff --git a/files/zh-cn/web/http/basics_of_http/identifying_resources_on_the_web/index.html b/files/zh-cn/web/http/basics_of_http/identifying_resources_on_the_web/index.html index cbecc64e9097ff..06da4451345017 100644 --- a/files/zh-cn/web/http/basics_of_http/identifying_resources_on_the_web/index.html +++ b/files/zh-cn/web/http/basics_of_http/identifying_resources_on_the_web/index.html @@ -135,7 +135,7 @@

        片段

        Anchor
        -
        #SomewhereInTheDocument 是资源本身的某一部分的一个锚点。锚点代表资源内的一种“书签”,它给予浏览器显示位于该“加书签”点的内容的指示。 例如,在 HTML 文档上,浏览器将滚动到定义锚点的那个点上;在视频或音频文档上,浏览器将转到锚点代表的那个时间。值得注意的是 # 号后面的部分,也称为片段标识符,永远不会与请求一起发送到服务器。
        +
        #SomewhereInTheDocument 是资源本身的某一部分的一个锚点。锚点代表资源内的一种“书签”,它给予浏览器显示位于该“加书签”点的内容的指示。例如,在 HTML 文档上,浏览器将滚动到定义锚点的那个点上;在视频或音频文档上,浏览器将转到锚点代表的那个时间。值得注意的是 # 号后面的部分,也称为片段标识符,永远不会与请求一起发送到服务器。

        示例

        diff --git a/files/zh-cn/web/http/basics_of_http/index.html b/files/zh-cn/web/http/basics_of_http/index.html index e5b1c9800fa846..4038f26c52e8c8 100644 --- a/files/zh-cn/web/http/basics_of_http/index.html +++ b/files/zh-cn/web/http/basics_of_http/index.html @@ -7,7 +7,7 @@ - 概览 translation_of: Web/HTTP/Basics_of_HTTP --- -

        HTTP 是一个拓展性非常好的协议。它依赖于以下的一些基本概念: 像资源或是 URI 的概念 , 一个简单的消息结构,一个客户端 - 服务器结构的通信流。 在这些基础概念之上, 近年来已经出现了许多拓展,以增加新的 HTTP 方法或首部的方式为 HTTP 协议增加了新的功能和语义。

        +

        HTTP 是一个拓展性非常好的协议。它依赖于以下的一些基本概念:像资源或是 URI 的概念 , 一个简单的消息结构,一个客户端 - 服务器结构的通信流。 在这些基础概念之上, 近年来已经出现了许多拓展,以增加新的 HTTP 方法或首部的方式为 HTTP 协议增加了新的功能和语义。

        文章

        @@ -15,7 +15,7 @@

        文章

        HTTP 概览
        描述了什么是 HTTP,它在 Web 架构中的角色,以及它在协议栈中的位置。
        HTTP 演变
        -
        HTTP 是在 20 世纪 90 年代早期出现的,并且已经被扩充了多次。本文会回顾 HTTP 的发展史,描述 HTTP/0.9、HTTP/1.0、HTTP/1.1 和最新的 HTTP/2, 以及这些年来出现的一些新特性。
        +
        HTTP 是在 20 世纪 90 年代早期出现的,并且已经被扩充了多次。本文会回顾 HTTP 的发展史,描述 HTTP/0.9、HTTP/1.0、HTTP/1.1 和最新的 HTTP/2,以及这些年来出现的一些新特性。
        商定 HTTP 版本
        解释了客户端和服务器之间是如何商定并最终升级其使用的 HTTP 版本的。
         资源和 URI
        @@ -25,7 +25,7 @@

        文章

        数据 URI
        一种特殊的 URI,它直接包含了资源的内容。数据 URI 使用起来非常方便,但也有一些弊端。
        资源 URLs 
        -
        资源 URLs(URLs 是以为resource:scheme前缀的) 是被 Firefox 和 Firefox 浏览器拓展插件用来内在地加载资源, 当然有些资源在浏览器连接的网站上存在的。
        +
        资源 URLs(URLs 是以为resource:scheme前缀的) 是被 Firefox 和 Firefox 浏览器拓展插件用来内在地加载资源,当然有些资源在浏览器连接的网站上存在的。
        分离资源的标识和位置:the Alt-Svc HTTP header

        大多数情况下 web 资源的标识和位置是共享的,可通过使用{{HTTPHeader("Alt-Svc")}} 头部来改变。

        diff --git a/files/zh-cn/web/http/basics_of_http/mime_types/index.html b/files/zh-cn/web/http/basics_of_http/mime_types/index.html index 1b9ac4bf324632..47f038955705d4 100644 --- a/files/zh-cn/web/http/basics_of_http/mime_types/index.html +++ b/files/zh-cn/web/http/basics_of_http/mime_types/index.html @@ -100,7 +100,7 @@

        重要的 MIME 类型

        application/octet-stream

        -

        这是应用程序文件的默认值。意思是 未知的应用程序文件 ,浏览器一般不会自动执行或询问执行。浏览器会像对待 设置了 HTTP 头{{HTTPHeader("Content-Disposition")}} 值为 attachment 的文件一样来对待这类文件。

        +

        这是应用程序文件的默认值。意思是 未知的应用程序文件,浏览器一般不会自动执行或询问执行。浏览器会像对待 设置了 HTTP 头{{HTTPHeader("Content-Disposition")}} 值为 attachment 的文件一样来对待这类文件。

        text/plain

        @@ -228,11 +228,11 @@

        音频与视频类型

      - + - + @@ -355,7 +355,7 @@

      其他传送文件类型的方法

    • 有时会使用名称后缀,特别是在 Microsoft Windows 系统上。并非所有的操作系统都认为这些后缀是有意义的(特别是 Linux 和 Mac OS),并且像外部 MIME 类型一样,不能保证它们是正确的。
    • -
    • 魔术数字。不同类型的文件的语法通过查看结构来允许文件类型推断。例如,每个 GIF 文件以 47 49 46 38 十六进制值 [GIF89] 或 89 50 4E 47 [.PNG] 的 PNG 文件开头。 并非所有类型的文件都有幻数,所以这也不是 100%可靠的方式。
    • +
    • 魔术数字。不同类型的文件的语法通过查看结构来允许文件类型推断。例如,每个 GIF 文件以 47 49 46 38 十六进制值 [GIF89] 或 89 50 4E 47 [.PNG] 的 PNG 文件开头。并非所有类型的文件都有幻数,所以这也不是 100%可靠的方式。
    • 其他

      diff --git a/files/zh-cn/web/http/content_negotiation/index.html b/files/zh-cn/web/http/content_negotiation/index.html index 87478480d77624..6503349cac4227 100644 --- a/files/zh-cn/web/http/content_negotiation/index.html +++ b/files/zh-cn/web/http/content_negotiation/index.html @@ -15,7 +15,7 @@

      内容协商的基本原则

      -

      一份特定的文件称为一项资源。当客户端获取资源的时候,会使用其对应的 URL 发送请求。服务器通过这个 URL 来选择它指向的资源的某一变体——每一个变体称为一种展现形式——然后将这个选定的展现形式返回给客户端。整个资源,连同它的各种展现形式,共享一个特定的 URL 。当一项资源被访问的时候,特定展现形式的选取是通过内容协商机制来决定的,并且客户端和服务器端之间存在多种协商方式。

      +

      一份特定的文件称为一项资源。当客户端获取资源的时候,会使用其对应的 URL 发送请求。服务器通过这个 URL 来选择它指向的资源的某一变体——每一个变体称为一种展现形式——然后将这个选定的展现形式返回给客户端。整个资源,连同它的各种展现形式,共享一个特定的 URL。当一项资源被访问的时候,特定展现形式的选取是通过内容协商机制来决定的,并且客户端和服务器端之间存在多种协商方式。

      @@ -126,7 +126,7 @@

      User-Agent 首部

      {{HTTPHeader("User-Agent")}} 首部可以用来识别发送请求的浏览器。该字符串中包含有用空格间隔的产品标记符注释的清单。

      -

      产品标记符由产品名称、后面紧跟的 '/' 以及产品版本号构成,例如 Firefox/4.0.1 。用户代理可以随意添加多少产品标记符都可以。注释是一个用括号分隔的自由形式的字符串。显然括号本身不能用在该字符串中。规范没有规定注释的内部格式,不过一些浏览器会把一些标记符放置在里面,不同的标记符之间使用 ';' 分隔。

      +

      产品标记符由产品名称、后面紧跟的 '/' 以及产品版本号构成,例如 Firefox/4.0.1。用户代理可以随意添加多少产品标记符都可以。注释是一个用括号分隔的自由形式的字符串。显然括号本身不能用在该字符串中。规范没有规定注释的内部格式,不过一些浏览器会把一些标记符放置在里面,不同的标记符之间使用 ';' 分隔。

      Vary 响应首部

      diff --git a/files/zh-cn/web/http/cookies/index.html b/files/zh-cn/web/http/cookies/index.html index 169bed936a23cb..e0026f0c3d190d 100644 --- a/files/zh-cn/web/http/cookies/index.html +++ b/files/zh-cn/web/http/cookies/index.html @@ -135,7 +135,7 @@

      SameSite attribute

      • None浏览器会在同站请求、跨站请求下继续发送 cookies,不区分大小写。
      • -
      • Strict浏览器将只在访问相同站点时发送 cookie。(在原有 Cookies 的限制条件上的加强,如上文 “Cookie 的作用域” 所述)
      • +
      • Strict浏览器将只在访问相同站点时发送 cookie。(在原有 Cookies 的限制条件上的加强,如上文“Cookie 的作用域”所述)
      • LaxStrict 类似,但用户从外部站点导航至 URL 时(例如通过链接)除外。 在新版本浏览器中,为默认选项,Same-site cookies 将会为一些跨站子请求保留,如图片加载或者 frames 的调用,但只有当用户从外部站点导航到 URL 时才会发送。如 link 链接
      @@ -160,7 +160,7 @@
      如果 cookie 名称具有此前缀,则仅当它也用 Secure 属性标记,是从安全来源发送的,它才在 {{HTTPHeader("Set-Cookie")}} 标头中接受。该前缀限制要弱于 __Host- 前缀。
      -

      带有这些前缀点 Cookie, 如果不符合其限制的会被浏览器拒绝。请注意,这确保了如果子域要创建带有前缀的 cookie,那么它将要么局限于该子域,要么被完全忽略。由于应用服务器仅在确定用户是否已通过身份验证或 CSRF 令牌正确时才检查特定的 cookie 名称,因此,这有效地充当了针对会话劫持的防御措施。

      +

      带有这些前缀点 Cookie,如果不符合其限制的会被浏览器拒绝。请注意,这确保了如果子域要创建带有前缀的 cookie,那么它将要么局限于该子域,要么被完全忽略。由于应用服务器仅在确定用户是否已通过身份验证或 CSRF 令牌正确时才检查特定的 cookie 名称,因此,这有效地充当了针对会话劫持的防御措施。

      在应用程序服务器上,Web 应用程序必须检查完整的 cookie 名称,包括前缀 —— 用户代理程序在从请求的 {{HTTPHeader("Cookie")}} 标头中发送前缀之前,不会从 cookie 中剥离前缀。

      diff --git a/files/zh-cn/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html b/files/zh-cn/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html index 49359260dcfec5..1de0e03f443d11 100644 --- a/files/zh-cn/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html +++ b/files/zh-cn/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html @@ -15,9 +15,9 @@

      出了什么问题?

      如果响应包含多个 Access-Control-Allow-Origin 标头,也会发生此错误。

      -

      如果您的代码使用 CORS 请求访问的服务在您的控制之下,请确保将其配置为将其来源包含在其 Access-Control-Allow-Origin 标头中,并且响应中仅包含一个此类标头。 标题本身接受逗号描述的起源列表,因此添加新的起源并不困难。

      +

      如果您的代码使用 CORS 请求访问的服务在您的控制之下,请确保将其配置为将其来源包含在其 Access-Control-Allow-Origin 标头中,并且响应中仅包含一个此类标头。标题本身接受逗号描述的起源列表,因此添加新的起源并不困难。

      -

      例如,在 Apache 中,将以下行添加到服务器的配置中(在相应的 <Directory><Location><Files><VirtualHost> 部分中)。 配置通常位于 .conf 文件中(httpd.confapache.conf 是这些文件的通用名称),或者位于 .htaccess 文件中。

      +

      例如,在 Apache 中,将以下行添加到服务器的配置中(在相应的 <Directory><Location><Files><VirtualHost> 部分中)。配置通常位于 .conf 文件中(httpd.confapache.conf 是这些文件的通用名称),或者位于 .htaccess 文件中。

      Header set Access-Control-Allow-Origin 'origin-list'
      diff --git a/files/zh-cn/web/http/cors/errors/corsdidnotsucceed/index.html b/files/zh-cn/web/http/cors/errors/corsdidnotsucceed/index.html index 7d9bf6b8368bb4..e1eb553380e215 100644 --- a/files/zh-cn/web/http/cors/errors/corsdidnotsucceed/index.html +++ b/files/zh-cn/web/http/cors/errors/corsdidnotsucceed/index.html @@ -13,7 +13,7 @@

      原因

      -
      原因: CORS 请求未成功
      +
      原因:CORS 请求未成功

      哪里错了?

      @@ -23,7 +23,7 @@

      参见

      • HTTP 访问控制(CORS)错误
      • -
      • 词汇: {{Glossary("CORS")}}
      • +
      • 词汇:{{Glossary("CORS")}}
      • HTTP 访问控制(CORS)

      • diff --git a/files/zh-cn/web/http/cors/errors/corsexternalredirectnotallowed/index.html b/files/zh-cn/web/http/cors/errors/corsexternalredirectnotallowed/index.html index 52b754c474c5e4..9e0a6e52a7871d 100644 --- a/files/zh-cn/web/http/cors/errors/corsexternalredirectnotallowed/index.html +++ b/files/zh-cn/web/http/cors/errors/corsexternalredirectnotallowed/index.html @@ -7,7 +7,7 @@

        原因

        -
        原因: CORS 不允许请求外部重定向
        +
        原因:CORS 不允许请求外部重定向

        哪里错了?

        diff --git a/files/zh-cn/web/http/cors/errors/corsmethodnotfound/index.html b/files/zh-cn/web/http/cors/errors/corsmethodnotfound/index.html index b91a4ca628fafe..f17e5ad0d7fc68 100644 --- a/files/zh-cn/web/http/cors/errors/corsmethodnotfound/index.html +++ b/files/zh-cn/web/http/cors/errors/corsmethodnotfound/index.html @@ -7,7 +7,7 @@

        原因

        -
        原因:在 CORS 头 ‘Access-Control-Allow-Methods’ 中没有找到方法
        +
        原因:在 CORS 头‘Access-Control-Allow-Methods’中没有找到方法

        哪里错了?

        diff --git a/files/zh-cn/web/http/cors/errors/corsmissingallowcredentials/index.html b/files/zh-cn/web/http/cors/errors/corsmissingallowcredentials/index.html index 07b845aba8f2a4..c1e83b0192e8d6 100644 --- a/files/zh-cn/web/http/cors/errors/corsmissingallowcredentials/index.html +++ b/files/zh-cn/web/http/cors/errors/corsmissingallowcredentials/index.html @@ -12,12 +12,12 @@

        理由

        错在了哪儿?

        -

             CORS 请求要求服务器允许使用凭据,但是服务器的 HTTPHeader:Access-Control-Allow-Credentials 标头的值并没有设置为 true 。

        +

             CORS 请求要求服务器允许使用凭据,但是服务器的 HTTPHeader:Access-Control-Allow-Credentials 标头的值并没有设置为 true。

        想要在客户端解决此问题,请修改代码以不请求使用凭据:

          -
        • 如果要使用{{domxref("XMLHttpRequest")}}发出请求,请确保没有将{{domxref("XMLHttpRequest.withCredentials”,“ withCredentials")}}}设置为 true。
        • +
        • 如果要使用{{domxref("XMLHttpRequest")}}发出请求,请确保没有将{{domxref("XMLHttpRequest.withCredentials”,“withCredentials")}}}设置为 true。
        • 如果使用 Server-sent events,请确保{{domxref("EventSource.withCredentials")}}为 false(default)。
        • 如果使用 Fetch API,请确保{{domxref("Request.credentials")}}为“omit”。
        diff --git a/files/zh-cn/web/http/cors/errors/corsmissingalloworigin/index.html b/files/zh-cn/web/http/cors/errors/corsmissingalloworigin/index.html index 11b014a90e2d63..2697b59a2508c1 100644 --- a/files/zh-cn/web/http/cors/errors/corsmissingalloworigin/index.html +++ b/files/zh-cn/web/http/cors/errors/corsmissingalloworigin/index.html @@ -11,7 +11,7 @@

        原因

        -
        原因:缺少 CORS “Access-Control-Allow-Origin”
        +
        原因:缺少 CORS“Access-Control-Allow-Origin”

        哪里出错了?

        @@ -32,7 +32,7 @@

        哪里出错了?

        警告: 使用通配符允许所有站点访问私有 API 是显而易见的坏主意。

      -

      例如,在 Apache 服务器中,将下面一行添加到服务器的配置中(在相应的<Directory>,<Location>,<Files>或<VirtualHost>部分中)。 配置通常位于.conf 文件中(httpd.conf 和 apache.conf 是这些文件的通用名称),或者位于.htaccess文件中。

      +

      例如,在 Apache 服务器中,将下面一行添加到服务器的配置中(在相应的<Directory>,<Location>,<Files>或<VirtualHost>部分中)。配置通常位于.conf 文件中(httpd.conf 和 apache.conf 是这些文件的通用名称),或者位于.htaccess文件中。

      Header set Access-Control-Allow-Origin 'origin-list'
       
      diff --git a/files/zh-cn/web/http/cors/errors/corsmultiplealloworiginnotallowed/index.html b/files/zh-cn/web/http/cors/errors/corsmultiplealloworiginnotallowed/index.html index 8632c8223c3fd6..c80682e0d4135d 100644 --- a/files/zh-cn/web/http/cors/errors/corsmultiplealloworiginnotallowed/index.html +++ b/files/zh-cn/web/http/cors/errors/corsmultiplealloworiginnotallowed/index.html @@ -7,7 +7,7 @@

      原因

      -
      原因:不允许出现多个 ‘Access-Control-Allow-Origin’ CORS 头信息。
      +
      原因:不允许出现多个‘Access-Control-Allow-Origin’CORS 头信息。

      为什么会出现该问题?

      diff --git a/files/zh-cn/web/http/cors/errors/corsnotsupportingcredentials/index.html b/files/zh-cn/web/http/cors/errors/corsnotsupportingcredentials/index.html index cd4e74f21ed0a5..eb7baf42931ca6 100644 --- a/files/zh-cn/web/http/cors/errors/corsnotsupportingcredentials/index.html +++ b/files/zh-cn/web/http/cors/errors/corsnotsupportingcredentials/index.html @@ -29,6 +29,6 @@

      另请参见

      diff --git a/files/zh-cn/web/http/cors/errors/corsrequestnothttp/index.html b/files/zh-cn/web/http/cors/errors/corsrequestnothttp/index.html index 9618d6e0e0255c..c6e3d135784879 100644 --- a/files/zh-cn/web/http/cors/errors/corsrequestnothttp/index.html +++ b/files/zh-cn/web/http/cors/errors/corsrequestnothttp/index.html @@ -12,7 +12,7 @@

      原因

      -
      原因: CORS 请求不是 HTTP
      +
      原因:CORS 请求不是 HTTP

      哪里出错了?

      @@ -24,7 +24,7 @@

      自 Firefox 68 本地文

      当用户在 Firefox 67 或更早版本中使用 file:/// URI 打开页面时,页面来源被定义为打开页面的目录。同一目录及其子目录中的资源均被视为具有相同的来源,符合 CORS 同源规则。

      -

      为响应 CVE-2019-11730,Firefox 68 及更高版本中定义,使用 file:/// URL 打开页面的来源唯一。 因此,同一目录或其子目录中的其他资源不再满足 CORS 同源规则。这个新的表现通过 privacy.file_unique_origin 这一首选项控制,默认启用。

      +

      为响应 CVE-2019-11730,Firefox 68 及更高版本中定义,使用 file:/// URL 打开页面的来源唯一。因此,同一目录或其子目录中的其他资源不再满足 CORS 同源规则。这个新的表现通过 privacy.file_unique_origin 这一首选项控制,默认启用。

      参考

      diff --git a/files/zh-cn/web/http/cors/errors/index.html b/files/zh-cn/web/http/cors/errors/index.html index 82f20db2364fc3..6cf138f2168661 100644 --- a/files/zh-cn/web/http/cors/errors/index.html +++ b/files/zh-cn/web/http/cors/errors/index.html @@ -10,10 +10,10 @@
       
      -

      如果未正确设置 CORS 配置,浏览器控制台将显示错误,例如"Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at $somesite"(跨源请求已阻止:同源策略禁止在某些站点上读取远程资源”),表示请求因违反 CORS 安全性而被阻止规则。 但这可能不一定是设置错误。 因为用户的 Web 应用程序和远程外部服务可能故意禁止该请求。如果要使端点可用,则需要进行一些调试才能成功。

      +

      如果未正确设置 CORS 配置,浏览器控制台将显示错误,例如"Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at $somesite"(跨源请求已阻止:同源策略禁止在某些站点上读取远程资源”),表示请求因违反 CORS 安全性而被阻止规则。但这可能不一定是设置错误。因为用户的 Web 应用程序和远程外部服务可能故意禁止该请求。如果要使端点可用,则需要进行一些调试才能成功。

      确定问题

      @@ -35,12 +35,12 @@

      确定问题

      additional information here).
      -

      注意:出于安全原因,JavaScript 代码无法给出有关 CORS 请求出错的详细信息。 所有代码都知道发生了错误。 确定具体问题的唯一方法是查看浏览器的控制台以获取详细信息。

      +

      注意:出于安全原因,JavaScript 代码无法给出有关 CORS 请求出错的详细信息。所有代码都知道发生了错误。确定具体问题的唯一方法是查看浏览器的控制台以获取详细信息。

      CORS 错误信息

      -

      当请求因 CORS 失败时,Firefox 的控制台会在其控制台中显示消息。 错误文本的一部分是“原因”消息,它提供了对出错的更深入的了解。 消息的原因如下: 

      +

      当请求因 CORS 失败时,Firefox 的控制台会在其控制台中显示消息。错误文本的一部分是“原因”消息,它提供了对出错的更深入的了解。消息的原因如下: 

      • 原因:CORS 被禁用
      • diff --git a/files/zh-cn/web/http/cors/index.md b/files/zh-cn/web/http/cors/index.md index dee6eacc273855..787160763c31ad 100644 --- a/files/zh-cn/web/http/cors/index.md +++ b/files/zh-cn/web/http/cors/index.md @@ -21,7 +21,7 @@ translation_of: Web/HTTP/CORS 跨源 HTTP 请求的一个例子:运行在 `https://domain-a.com` 的 JavaScript 代码使用 {{domxref("XMLHttpRequest")}} 来发起一个到 `https://domain-b.com/data.json` 的请求。 -出于安全性,浏览器限制脚本内发起的跨源 HTTP 请求。 例如,`XMLHttpRequest` 和 [Fetch API](/zh-CN/docs/Web/API/Fetch_API) 遵循[同源策略](/zh-CN/docs/Web/Security/Same-origin_policy)。这意味着使用这些 API 的 Web 应用程序只能从加载应用程序的同一个域请求 HTTP 资源,除非响应报文包含了正确 CORS 响应头。 +出于安全性,浏览器限制脚本内发起的跨源 HTTP 请求。例如,`XMLHttpRequest` 和 [Fetch API](/zh-CN/docs/Web/API/Fetch_API) 遵循[同源策略](/zh-CN/docs/Web/Security/Same-origin_policy)。这意味着使用这些 API 的 Web 应用程序只能从加载应用程序的同一个域请求 HTTP 资源,除非响应报文包含了正确 CORS 响应头。 ![](cors_principle.png) @@ -33,7 +33,7 @@ translation_of: Web/HTTP/CORS 更具体地来讲,这篇文章适用于 **网站管理员**、**后端和前端开发者**。现代浏览器处理跨源资源共享的客户端部分,包括 HTTP 头和相关策略的执行。但是这一新标准意味着服务器需要处理新的请求头和响应头。 -## 什么情况下需要 CORS ? +## 什么情况下需要 CORS? 这份 [cross-origin sharing standard](https://fetch.spec.whatwg.org/#http-cors-protocol) 允许在下列场景中使用跨站点 HTTP 请求: @@ -195,7 +195,7 @@ Keep-Alive: timeout=2, max=100 Connection: Keep-Alive ``` -浏览器检测到,从 JavaScript 中发起的请求需要被预检。从上面的报文中,我们看到,第 1\~10 行发送了一个使用 `OPTIONS` 方法 的“预检请求”。OPTIONS 是 HTTP/1.1 协议中定义的方法,用以从服务器获取更多信息。该方法不会对服务器资源产生影响。 预检请求中同时携带了下面两个首部字段: +浏览器检测到,从 JavaScript 中发起的请求需要被预检。从上面的报文中,我们看到,第 1\~10 行发送了一个使用 `OPTIONS` 方法 的“预检请求”。OPTIONS 是 HTTP/1.1 协议中定义的方法,用以从服务器获取更多信息。该方法不会对服务器资源产生影响。预检请求中同时携带了下面两个首部字段: ``` Access-Control-Request-Method: POST @@ -441,7 +441,7 @@ Access-Control-Allow-Headers: [, ]* ## HTTP 请求首部字段 -本节列出了可用于发起跨源请求的首部字段。请注意,这些首部字段无须手动设置。 当开发者使用 XMLHttpRequest 对象发起跨源请求时,它们已经被设置就绪。 +本节列出了可用于发起跨源请求的首部字段。请注意,这些首部字段无须手动设置。当开发者使用 XMLHttpRequest 对象发起跨源请求时,它们已经被设置就绪。 ### Origin diff --git a/files/zh-cn/web/http/csp/index.html b/files/zh-cn/web/http/csp/index.html index 919c87f72f8742..ac7ce2c7f53c72 100644 --- a/files/zh-cn/web/http/csp/index.html +++ b/files/zh-cn/web/http/csp/index.html @@ -22,7 +22,7 @@

        威胁

        跨站脚本攻击

        -

        CSP 的主要目标是减少和报告 XSS 攻击 ,XSS 攻击利用了浏览器对于从服务器所获取的内容的信任。恶意脚本在受害者的浏览器中得以运行,因为浏览器信任其内容来源,即使有的时候这些脚本并非来自于它本该来的地方。

        +

        CSP 的主要目标是减少和报告 XSS 攻击,XSS 攻击利用了浏览器对于从服务器所获取的内容的信任。恶意脚本在受害者的浏览器中得以运行,因为浏览器信任其内容来源,即使有的时候这些脚本并非来自于它本该来的地方。

        CSP 通过指定有效域——即浏览器认可的可执行脚本的有效来源——使服务器管理者有能力减少或消除 XSS 攻击所依赖的载体。一个 CSP 兼容的浏览器将会仅执行从白名单域获取到的脚本文件,忽略所有的其他脚本 (包括内联脚本和 HTML 的事件处理属性)。

        @@ -46,7 +46,7 @@

        制定策略

        描述策略

        -

        一个策略由一系列策略指令所组成,每个策略指令都描述了一个针对某个特定类型资源以及生效范围的策略。你的策略应当包含一个{{CSP("default-src")}}策略指令,在其他资源类型没有符合自己的策略时应用该策略 (有关完整列表查看{{CSP("default-src")}} )。一个策略可以包含 {{CSP("default-src")}}  或者 {{CSP("script-src")}} 指令来防止内联脚本运行,并杜绝eval()的使用。 一个策略也可包含一个 {{CSP("default-src")}} 或  {{CSP("style-src")}} 指令去限制来自一个 {{HTMLElement("style")}} 元素或者 style 属性的內联样式。

        +

        一个策略由一系列策略指令所组成,每个策略指令都描述了一个针对某个特定类型资源以及生效范围的策略。你的策略应当包含一个{{CSP("default-src")}}策略指令,在其他资源类型没有符合自己的策略时应用该策略 (有关完整列表查看{{CSP("default-src")}} )。一个策略可以包含 {{CSP("default-src")}}  或者 {{CSP("script-src")}} 指令来防止内联脚本运行,并杜绝eval()的使用。一个策略也可包含一个 {{CSP("default-src")}} 或  {{CSP("style-src")}} 指令去限制来自一个 {{HTMLElement("style")}} 元素或者 style 属性的內联样式。

        示例:常见用例

        @@ -102,7 +102,7 @@

        对策略进行测试

        Content-Security-Policy-Report-Only: policy
        -

         如果{{HTTPHeader("Content-Security-Policy-Report-Only")}} 头部和 {{HTTPHeader("Content-Security-Policy")}} 同时出现在一个响应中,两个策略均有效。在Content-Security-Policy 头部中指定的策略有强制性 ,而Content-Security-Policy-Report-Only中的策略仅产生报告而不具有强制性。

        +

         如果{{HTTPHeader("Content-Security-Policy-Report-Only")}} 头部和 {{HTTPHeader("Content-Security-Policy")}} 同时出现在一个响应中,两个策略均有效。在Content-Security-Policy 头部中指定的策略有强制性,而Content-Security-Policy-Report-Only中的策略仅产生报告而不具有强制性。

        支持 CSP 的浏览器将始终对于每个企图违反你所建立的策略都发送违规报告,如果策略里包含一个有效的{{CSP("report-uri")}} 指令。

        diff --git a/files/zh-cn/web/http/feature_policy/index.html b/files/zh-cn/web/http/feature_policy/index.html index fffd5eef6c24ee..76785f961ed573 100644 --- a/files/zh-cn/web/http/feature_policy/index.html +++ b/files/zh-cn/web/http/feature_policy/index.html @@ -131,7 +131,7 @@

        规范

      - +
      可包含内容Phrasing content, 但不能包含子 time 元素。Phrasing content,但不能包含子 time 元素。
      标签可省略?
      {{domxref("HTMLMediaElement.stalled_event", 'stalled')}}用户代理(user agent)正在尝试获取媒体数据, 但数据意外未出现。用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现。
      {{domxref("HTMLMediaElement.suspend_event", 'suspend')}}
      {{SpecName('HTML5.1', "dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes", "data-*")}} {{Spec2('HTML5.1')}}Snapshot of {{SpecName('HTML WHATWG')}} 的快照, no change from {{SpecName('HTML5 W3C')}}Snapshot of {{SpecName('HTML WHATWG')}} 的快照,no change from {{SpecName('HTML5 W3C')}}
      {{SpecName('HTML5 W3C', "dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes", "data-*")}} {{HTMLElement("a")}}, {{HTMLElement("area")}}, {{HTMLElement("link")}} @@ -169,7 +169,7 @@
      license -

      表示超链接指向描述许可信息的文档。 如果不在{{HTMLElement("head")}}元素内,则该标准不会区分应用于文档特定部分或整个文档的超链接。 仅页面上的数据可以表明这一点。

      +

      表示超链接指向描述许可信息的文档。如果不在{{HTMLElement("head")}}元素内,则该标准不会区分应用于文档特定部分或整个文档的超链接。仅页面上的数据可以表明这一点。

      Note:虽然可以识别,但同义词copyright是不正确的,必须避免使用。

      pingback
       
      -

      定义一个外部资源 URI,以便在对该网页发表评论或引用时调用。 在 Pingback 1.0 规范中定义了用于进行此类调用的协议。

      +

      定义一个外部资源 URI,以便在对该网页发表评论或引用时调用。在 Pingback 1.0 规范中定义了用于进行此类调用的协议。

      注意:如果还存在 X-Pingback:HTTP 标头,则此标头优先于具有这种链接类型的{{HTMLElement("link")}}元素

      prefetch 提示浏览器提前加载链接的资源,因为它可能会被用户请求。 -

      建议浏览器提前获取链接的资源,因为它很可能会被用户请求。 从 Firefox 44 开始,考虑了{{HTMLAttrxRef("crossorigin", "link")}}属性的值,从而可以进行匿名预取。

      +

      建议浏览器提前获取链接的资源,因为它很可能会被用户请求。从 Firefox 44 开始,考虑了{{HTMLAttrxRef("crossorigin", "link")}}属性的值,从而可以进行匿名预取。

      注意:Link Prefetch FAQ详细说明了可以预取的链接以及替代方法。

      sidebar {{Non-standard_Inline}}{{Obsolete_Inline("Gecko63")}} -

      表示超链接指向的资源更适合于辅助浏览上下文,如侧边栏。 没有此类上下文的浏览器将忽略此关键字。

      +

      表示超链接指向的资源更适合于辅助浏览上下文,如侧边栏。没有此类上下文的浏览器将忽略此关键字。

      虽然它曾经是 HTML 规范的一部分,但已从规范中删除,仅由 Firefox 63 之前的 Firefox 版本实现。

      video/ogg采用 OGG 多媒体文件格式的音视频文件。常用的视频解码器是 Theora;音频解码器为 Vorbis 。采用 OGG 多媒体文件格式的音视频文件。常用的视频解码器是 Theora;音频解码器为 Vorbis。
      application/ogg采用 OGG 多媒体文件格式的音视频文件。常用的视频解码器是 Theora;音频解码器为 Vorbis 。采用 OGG 多媒体文件格式的音视频文件。常用的视频解码器是 Theora;音频解码器为 Vorbis。
      application/json
      {{SpecName('Feature Policy','#feature-policy-http-header-field','Feature-Policy')}} {{Spec2('Feature Policy')}}初始化前定义 {{httpheader('Feature-Policy')}} 头。规范中定义了指令所控制的特性. 有关详细信息,请参阅个别指令页面。初始化前定义 {{httpheader('Feature-Policy')}} 头。规范中定义了指令所控制的特性。有关详细信息,请参阅个别指令页面。
      diff --git a/files/zh-cn/web/http/headers/accept-charset/index.html b/files/zh-cn/web/http/headers/accept-charset/index.html index 6b3f54a4265199..44b59e123fcc1d 100644 --- a/files/zh-cn/web/http/headers/accept-charset/index.html +++ b/files/zh-cn/web/http/headers/accept-charset/index.html @@ -12,7 +12,7 @@ ---
      {{HTTPSidebar}}
      -

      Accept-Charset 请求头用来告知(服务器)客户端可以处理的字符集类型。 借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用, 并使用{{HTTPHeader("Content-Type")}} 应答头通知客户端它的选择。浏览器通常不会设置此项值,因为每种内容类型的默认值通常都是正确的,但是发送它会更有利于识别。

      +

      Accept-Charset 请求头用来告知(服务器)客户端可以处理的字符集类型。借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用,并使用{{HTTPHeader("Content-Type")}} 应答头通知客户端它的选择。浏览器通常不会设置此项值,因为每种内容类型的默认值通常都是正确的,但是发送它会更有利于识别。

      如果服务器不能提供任何可以匹配的字符集的版本,那么理论上来说应该返回一个 {{HTTPStatus("406")}}(Not Acceptable,不被接受)的错误码。但是为了更好的用户体验,这种方法很少采用,取而代之的是将其忽略。

      @@ -83,6 +83,6 @@

      参见

      • HTTP 内容协商机制
      • -
      • 用来表示内容协商结果的消息头: {{HTTPHeader("Content-Type")}}
      • -
      • 其他类似消息头: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Accept")}}
      • +
      • 用来表示内容协商结果的消息头:{{HTTPHeader("Content-Type")}}
      • +
      • 其他类似消息头:{{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Accept")}}
      diff --git a/files/zh-cn/web/http/headers/accept-language/index.html b/files/zh-cn/web/http/headers/accept-language/index.html index ad54738f8d3196..4f4c741c0bfa37 100644 --- a/files/zh-cn/web/http/headers/accept-language/index.html +++ b/files/zh-cn/web/http/headers/accept-language/index.html @@ -10,7 +10,7 @@ ---
      {{HTTPSidebar}}
      -

      Accept-Language 请求头允许客户端声明它可以理解的自然语言,以及优先选择的区域方言。借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用, 并使用 {{HTTPHeader("Content-Language")}} 应答头通知客户端它的选择。浏览器会基于其用户界面语言为这个请求头设置合适的值,即便是用户可以进行修改,但是这种情况极少发生(因为可增加指纹独特性,通常也不被鼓励)(译者注:通常只在测试网站的多语言支持时手动修改它;或为进一步减少指纹独特性,改为最常见的英文)。

      +

      Accept-Language 请求头允许客户端声明它可以理解的自然语言,以及优先选择的区域方言。借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用,并使用 {{HTTPHeader("Content-Language")}} 应答头通知客户端它的选择。浏览器会基于其用户界面语言为这个请求头设置合适的值,即便是用户可以进行修改,但是这种情况极少发生(因为可增加指纹独特性,通常也不被鼓励)(译者注:通常只在测试网站的多语言支持时手动修改它;或为进一步减少指纹独特性,改为最常见的英文)。

      当服务器无法通过其他方式来确定应当使用的语言时——例如某一特定的 URL,这是用户明确指定的——这个请求头可以用作提示。建议服务器端永远不要覆盖明确指定的信息。Accept-Language 消息头的内容通常不在用户的掌控之中(例如在国外旅行时到提供网络服务的场所上网);另外用户可能会想要浏览非本地用户界面语言的页面。

      diff --git a/files/zh-cn/web/http/headers/accept/index.html b/files/zh-cn/web/http/headers/accept/index.html index 793a1cfa22332d..cb6318331c99c5 100644 --- a/files/zh-cn/web/http/headers/accept/index.html +++ b/files/zh-cn/web/http/headers/accept/index.html @@ -78,6 +78,6 @@

      参见

      • HTTP 内容协商 
      • -
      • 表示内容协商结果的消息头: {{HTTPHeader("Content-Type")}}
      • -
      • 其他相似消息头: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}
      • +
      • 表示内容协商结果的消息头:{{HTTPHeader("Content-Type")}}
      • +
      • 其他相似消息头:{{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}
      diff --git a/files/zh-cn/web/http/headers/access-control-allow-headers/index.html b/files/zh-cn/web/http/headers/access-control-allow-headers/index.html index 08eed524a50165..2b9d3abd5447a3 100644 --- a/files/zh-cn/web/http/headers/access-control-allow-headers/index.html +++ b/files/zh-cn/web/http/headers/access-control-allow-headers/index.html @@ -46,7 +46,7 @@

      指令

      * (wildcard)

      -

      对于没有凭据的请求(没有 HTTP cookie 或 HTTP 认证信息的请求),值“ *”仅作为特殊的通配符值。 在具有凭据的请求中,它被视为没有特殊语义的文字标头名称“ *”。 请注意,{{HTTPHeader("Authorization")}}标头不能使用通配符,并且始终需要明确列出。

      +

      对于没有凭据的请求(没有 HTTP cookie 或 HTTP 认证信息的请求),值“ *”仅作为特殊的通配符值。在具有凭据的请求中,它被视为没有特殊语义的文字标头名称“ *”。请注意,{{HTTPHeader("Authorization")}}标头不能使用通配符,并且始终需要明确列出。

      示例

      diff --git a/files/zh-cn/web/http/headers/alt-svc/index.html b/files/zh-cn/web/http/headers/alt-svc/index.html index 4c9694933700ea..0978616ec8393d 100644 --- a/files/zh-cn/web/http/headers/alt-svc/index.html +++ b/files/zh-cn/web/http/headers/alt-svc/index.html @@ -6,7 +6,7 @@ - HTTP Header translation_of: Web/HTTP/Headers/Alt-Svc --- -

      Alt-Svc 全称为“Alternative-Service”,直译为“备选服务”。该头部列举了当前站点备选的访问方式列表。一般用于在提供 “QUIC” 等新兴协议支持的同时,实现向下兼容。

      +

      Alt-Svc 全称为“Alternative-Service”,直译为“备选服务”。该头部列举了当前站点备选的访问方式列表。一般用于在提供“QUIC”等新兴协议支持的同时,实现向下兼容。

      语法

      diff --git a/files/zh-cn/web/http/headers/clear-site-data/index.html b/files/zh-cn/web/http/headers/clear-site-data/index.html index 85a9a04cf96456..f8e0b8f205faa7 100644 --- a/files/zh-cn/web/http/headers/clear-site-data/index.html +++ b/files/zh-cn/web/http/headers/clear-site-data/index.html @@ -44,7 +44,7 @@

      指令

      "cache"
      表示服务端希望删除本 URL 原始响应的本地缓存数据(即 :浏览器缓存,请参阅 HTTP 缓存)。根据浏览器的不同,可能还会清除预渲染页面,脚本缓存,WebGL 着色器缓存或地址栏建议等内容。
      "cookies"
      -
      表示服务端希望删除 URL 响应的所有 cookie。 HTTP 身份验证凭据也会被清除。会影响整个主域,包括子域。所以 https://example.com 以及 https://stage.example.com 的 Cookie 都会被清除。
      +
      表示服务端希望删除 URL 响应的所有 cookie。HTTP 身份验证凭据也会被清除。会影响整个主域,包括子域。所以 https://example.com 以及 https://stage.example.com 的 Cookie 都会被清除。
      "storage"
      表示服务端希望删除 URL 原响应的所有 DOM 存储。这包括存储机制,如
        diff --git a/files/zh-cn/web/http/headers/content-encoding/index.md b/files/zh-cn/web/http/headers/content-encoding/index.md index d04736efe9209f..271d10871211f8 100644 --- a/files/zh-cn/web/http/headers/content-encoding/index.md +++ b/files/zh-cn/web/http/headers/content-encoding/index.md @@ -9,7 +9,7 @@ translation_of: Web/HTTP/Headers/Content-Encoding --- {{HTTPSidebar}} -{{Glossary("representation header", "实体消息首部")}} **`Content-Encoding`** 列出了对当前实体消息(消息荷载)应用的任何编码类型,以及编码的顺序。它让接收者知道需要以何种顺序解码该实体消息才能获得原始荷载格式。 Content-Encoding 主要用于在不丢失原媒体类型内容的情况下压缩消息数据。 +{{Glossary("representation header", "实体消息首部")}} **`Content-Encoding`** 列出了对当前实体消息(消息荷载)应用的任何编码类型,以及编码的顺序。它让接收者知道需要以何种顺序解码该实体消息才能获得原始荷载格式。Content-Encoding 主要用于在不丢失原媒体类型内容的情况下压缩消息数据。 请注意原始媒体/内容的类型通过 {{HTTPHeader("Content-Type")}} 首部给出,而 `Content-Encoding` 应用于数据的表示,或“编码形式”。如果原始媒体以某种方式编码(例如 zip 文件),则该信息不应该被包含在 `Content-Encoding` 首部内。 @@ -43,7 +43,7 @@ Content-Encoding: deflate, gzip ## 指令 - `gzip` - - : 表示采用 {{interWiki("wikipedia", "LZ77与LZ78#LZ77", "Lempel-Ziv coding")}}(LZ77)压缩算法,以及 32 位 CRC 校验的编码方式。这个编码方式最初由 UNIX 平台上的 _gzip_ 程序采用。出于兼容性的考虑,HTTP/1.1 标准提议支持这种编码方式的服务器应该识别作为别名的 `x-gzip` 指令。 + - : 表示采用 {{interWiki("wikipedia", "LZ77 与 LZ78#LZ77", "Lempel-Ziv coding")}}(LZ77)压缩算法,以及 32 位 CRC 校验的编码方式。这个编码方式最初由 UNIX 平台上的 _gzip_ 程序采用。出于兼容性的考虑,HTTP/1.1 标准提议支持这种编码方式的服务器应该识别作为别名的 `x-gzip` 指令。 - `compress` - : 采用 {{interWiki("wikipedia", "LZW", "Lempel-Ziv-Welch")}}(LZW)压缩算法。这个名称来自 UNIX 系统的 _compress_ 程序,该程序实现了前述算法。与其同名程序已经在大部分 UNIX 发行版中消失一样,这种内容编码方式已经被大部分浏览器弃用,部分因为专利问题(这项专利在 2003 年到期)。 - `deflate` diff --git a/files/zh-cn/web/http/headers/content-security-policy/default-src/index.html b/files/zh-cn/web/http/headers/content-security-policy/default-src/index.html index c4adf1c37e381b..6960336c2f210b 100644 --- a/files/zh-cn/web/http/headers/content-security-policy/default-src/index.html +++ b/files/zh-cn/web/http/headers/content-security-policy/default-src/index.html @@ -63,20 +63,20 @@

        <scheme-source>
        协议名如'http:' 或者 'https:'。必须带有冒号,不要有单引号。同时你还可以指定数据协议(data schema)(不推荐使用)。
          -
        • data: 允许 data: URIs 作为内容的源。这是不安全的。攻击者可以注入任意 data: URI 。不要轻易使用这种形式的源,尤其是脚本,绝对不要使用。
        • +
        • data: 允许 data: URIs 作为内容的源。这是不安全的。攻击者可以注入任意 data: URI。不要轻易使用这种形式的源,尤其是脚本,绝对不要使用。
        • mediastream: 允许 mediastream: URIs 作为内容的源
        • blob: 允许 blob: URIs 作为内容的源
        • filesystem: 允许 filesystem: URIs 作为内容的源
        'self'
        -
        指向与要保护的文件所在的源,包括相同的 URL scheme 与端口号。必须有单引号。一些浏览器会特意排除 blob 与 filesystem 。需要设定这两种内容类型的站点可以在 Data 属性中进行设定。
        +
        指向与要保护的文件所在的源,包括相同的 URL scheme 与端口号。必须有单引号。一些浏览器会特意排除 blob 与 filesystem。需要设定这两种内容类型的站点可以在 Data 属性中进行设定。
        'unsafe-inline'
        允许使用内联资源,例如内联 {{HTMLElement("script")}}  元素(javascript: URL)、内联事件处理器以及内联 {{HTMLElement("style")}} 元素。必须有单引号。
        'unsafe-eval'
        允许使用 eval() 以及相似的函数来从字符串创建代码。必须有单引号。
        'none'
        -
        不允许任何内容。 必须有单引号。
        +
        不允许任何内容。必须有单引号。
        'nonce-<base64 值>'
        特定使用一次性加密内联脚本的白名单。服务器必须在每一次传输政策时生成唯一的一次性值。否则将存在绕过资源政策的可能。请参见不安全的内联脚本查看示例。
        <hash-source>
        diff --git a/files/zh-cn/web/http/headers/content-security-policy/index.html b/files/zh-cn/web/http/headers/content-security-policy/index.html index 3a064cfb02e047..1a03d640442d42 100644 --- a/files/zh-cn/web/http/headers/content-security-policy/index.html +++ b/files/zh-cn/web/http/headers/content-security-policy/index.html @@ -139,7 +139,7 @@

        多内容安全策略

        CSP 允许在一个资源中指定多个策略,包括通过 Content-Security-Policy 头,以及 {{HTTPHeader("Content-Security-Policy-Report-Only")}} 头,和 {{HTMLElement("meta")}} 组件。

        -

        你可以像以下实例一样多次调用 Content-Security-Policy 头。 特别注意这里的 {{CSP("connect-src")}} 指令。 尽管第二个策略允许连接,第一个策略仍然包括了 connect-src 'none'。添加了附加的策略后,只会让资源保护的能力更强,也就是说不会有接口可以被允许访问,等同于最严格的策略,connect-src 'none' 强制开启。

        +

        你可以像以下实例一样多次调用 Content-Security-Policy 头。特别注意这里的 {{CSP("connect-src")}} 指令。尽管第二个策略允许连接,第一个策略仍然包括了 connect-src 'none'。添加了附加的策略后,只会让资源保护的能力更强,也就是说不会有接口可以被允许访问,等同于最严格的策略,connect-src 'none' 强制开启。

        Content-Security-Policy: default-src 'self' http://example.com;
                                  connect-src 'none';
        diff --git a/files/zh-cn/web/http/headers/date/index.html b/files/zh-cn/web/http/headers/date/index.html
        index 00661642c8ff80..55356a70882e30 100644
        --- a/files/zh-cn/web/http/headers/date/index.html
        +++ b/files/zh-cn/web/http/headers/date/index.html
        @@ -49,7 +49,7 @@ 

        指令

        2 位数字表示秒数,例如, "04" 或 "59"。
        GMT
        -

        格林尼治标准时间。 在 HTTP 协议中,时间都是用格林尼治标准时间来表示的,而不是本地时间。

        +

        格林尼治标准时间。在 HTTP 协议中,时间都是用格林尼治标准时间来表示的,而不是本地时间。

    diff --git a/files/zh-cn/web/http/headers/device-memory/index.html b/files/zh-cn/web/http/headers/device-memory/index.html index 2c1f247e817127..8d81dde2541935 100644 --- a/files/zh-cn/web/http/headers/device-memory/index.html +++ b/files/zh-cn/web/http/headers/device-memory/index.html @@ -26,7 +26,7 @@

    语法

    -

    设备的内存大小可能会被用作指纹变量,因此将这个取值设置的比较粗糙,以减少滥用它的可能性。 请求头采用以下值:0.25、0.5、1、2、4、8。

    +

    设备的内存大小可能会被用作指纹变量,因此将这个取值设置的比较粗糙,以减少滥用它的可能性。请求头采用以下值:0.25、0.5、1、2、4、8。

    Device-Memory: <number>
     
    diff --git a/files/zh-cn/web/http/headers/dnt/index.html b/files/zh-cn/web/http/headers/dnt/index.html index db721be2262785..7bb43d13fb1156 100644 --- a/files/zh-cn/web/http/headers/dnt/index.html +++ b/files/zh-cn/web/http/headers/dnt/index.html @@ -42,7 +42,7 @@

    指令

    示例

    -

    使用 JavaScript 读取 “不追踪”(Do Not Track)状态

    +

    使用 JavaScript 读取“不追踪”(Do Not Track)状态

    用户对 DNT 的设置还可以使用 {{domxref("Navigator.doNotTrack")}} 属性进行读取:

    diff --git a/files/zh-cn/web/http/headers/early-data/index.html b/files/zh-cn/web/http/headers/early-data/index.html index 55ee065d0a5ac1..9c1415a6902413 100644 --- a/files/zh-cn/web/http/headers/early-data/index.html +++ b/files/zh-cn/web/http/headers/early-data/index.html @@ -5,7 +5,7 @@ ---
    {{SeeCompatTable}}{{HTTPSidebar}}
    -

    Early-Data 头(header)由某个中间者设置来表示请求已在 TLS early data 中传送 ,且表示 某个中间者理解 {{HTTPStatus("425", "425 (Too Early)")}} 状态码。Early-Data 头(header)不由请求的发起者设置 (例如,浏览器)。

    +

    Early-Data 头(header)由某个中间者设置来表示请求已在 TLS early data 中传送,且表示 某个中间者理解 {{HTTPStatus("425", "425 (Too Early)")}} 状态码。Early-Data 头(header)不由请求的发起者设置 (例如,浏览器)。

    diff --git a/files/zh-cn/web/http/headers/etag/index.html b/files/zh-cn/web/http/headers/etag/index.html index 12753ea4b5ca95..3ec024d4979be3 100644 --- a/files/zh-cn/web/http/headers/etag/index.html +++ b/files/zh-cn/web/http/headers/etag/index.html @@ -12,7 +12,7 @@

    ETagHTTP 响应头是资源的特定版本的标识符。这可以让缓存更高效,并节省带宽,因为如果内容没有改变,Web 服务器不需要发送完整的响应。而如果内容发生了变化,使用 ETag 有助于防止资源的同时更新相互覆盖(“空中碰撞”)。

    -

    如果给定 URL 中的资源更改,则一定要生成新的 Etag 值。 因此 Etags 类似于指纹,也可能被某些服务器用于跟踪。 比较 etags 能快速确定此资源是否变化,但也可能被跟踪服务器永久存留。

    +

    如果给定 URL 中的资源更改,则一定要生成新的 Etag 值。因此 Etags 类似于指纹,也可能被某些服务器用于跟踪。比较 etags 能快速确定此资源是否变化,但也可能被跟踪服务器永久存留。

    @@ -37,9 +37,9 @@

    指令

    W/ {{optional_inline}}
    -
    'W/'(大小写敏感) 表示使用弱验证器。 弱验证器很容易生成,但不利于比较。 强验证器是比较的理想选择,但很难有效地生成。 相同资源的两个弱Etag值可能语义等同,但不是每个字节都相同。
    +
    'W/'(大小写敏感) 表示使用弱验证器。弱验证器很容易生成,但不利于比较。强验证器是比较的理想选择,但很难有效地生成。相同资源的两个弱Etag值可能语义等同,但不是每个字节都相同。
    "<etag_value>"
    -
    实体标签唯一地表示所请求的资源。 它们是位于双引号之间的 ASCII 字符串(如“675af34563dc-tr34”)。 没有明确指定生成 ETag 值的方法。 通常,使用内容的散列,最后修改时间戳的哈希值,或简单地使用版本号。 例如,MDN 使用 wiki 内容的十六进制数字的哈希值。
    +
    实体标签唯一地表示所请求的资源。它们是位于双引号之间的 ASCII 字符串(如“675af34563dc-tr34”)。没有明确指定生成 ETag 值的方法。通常,使用内容的散列,最后修改时间戳的哈希值,或简单地使用版本号。例如,MDN 使用 wiki 内容的十六进制数字的哈希值。

    示例

    @@ -63,7 +63,7 @@

    避免“空中碰撞”

    缓存未更改的资源

    -

    ETag头的另一个典型用例是缓存未更改的资源。 如果用户再次访问给定的 URL(设有ETag字段),显示资源过期了且不可用,客户端就发送值为ETag的{{HTTPHeader("If-None-Match")}} header 字段:

    +

    ETag头的另一个典型用例是缓存未更改的资源。如果用户再次访问给定的 URL(设有ETag字段),显示资源过期了且不可用,客户端就发送值为ETag的{{HTTPHeader("If-None-Match")}} header 字段:

    If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
    diff --git a/files/zh-cn/web/http/headers/expires/index.html b/files/zh-cn/web/http/headers/expires/index.html index bde542b5bf2fc5..20bc9bd2a6412d 100644 --- a/files/zh-cn/web/http/headers/expires/index.html +++ b/files/zh-cn/web/http/headers/expires/index.html @@ -7,7 +7,7 @@ ---
    {{HTTPSidebar}}
    -
    Expires 响应头包含日期/时间, 即在此时候之后,响应过期。
    +
    Expires 响应头包含日期/时间,即在此时候之后,响应过期。
     
    diff --git a/files/zh-cn/web/http/headers/if-modified-since/index.html b/files/zh-cn/web/http/headers/if-modified-since/index.html index 236c4bcf278c48..ed7f7528af9e22 100644 --- a/files/zh-cn/web/http/headers/if-modified-since/index.html +++ b/files/zh-cn/web/http/headers/if-modified-since/index.html @@ -8,7 +8,7 @@ ---
    {{HTTPSidebar}}
    -

    If-Modified-Since 是一个条件式请求首部,服务器只在所请求的资源在给定的日期时间之后对内容进行过修改的情况下才会将资源返回,状态码为 {{HTTPStatus("200")}}  。如果请求的资源从那时起未经修改,那么返回一个不带有消息主体的  {{HTTPStatus("304")}}  响应,而在 {{HTTPHeader("Last-Modified")}} 首部中会带有上次修改时间。 不同于  {{HTTPHeader("If-Unmodified-Since")}}, If-Modified-Since 只可以用在 {{HTTPMethod("GET")}} 或 {{HTTPMethod("HEAD")}} 请求中。

    +

    If-Modified-Since 是一个条件式请求首部,服务器只在所请求的资源在给定的日期时间之后对内容进行过修改的情况下才会将资源返回,状态码为 {{HTTPStatus("200")}}  。如果请求的资源从那时起未经修改,那么返回一个不带有消息主体的  {{HTTPStatus("304")}}  响应,而在 {{HTTPHeader("Last-Modified")}} 首部中会带有上次修改时间。不同于  {{HTTPHeader("If-Unmodified-Since")}}, If-Modified-Since 只可以用在 {{HTTPMethod("GET")}} 或 {{HTTPMethod("HEAD")}} 请求中。

    当与 {{HTTPHeader("If-None-Match")}} 一同出现时,它(If-Modified-Since)会被忽略掉,除非服务器不支持 If-None-Match

    diff --git a/files/zh-cn/web/http/headers/if-none-match/index.html b/files/zh-cn/web/http/headers/if-none-match/index.html index 8b0674151694d1..7400ced4d6f550 100644 --- a/files/zh-cn/web/http/headers/if-none-match/index.html +++ b/files/zh-cn/web/http/headers/if-none-match/index.html @@ -10,7 +10,7 @@

    If-None-Match 是一个条件式请求首部。对于 GET{{HTTPMethod("GET")}} 和 {{HTTPMethod("HEAD")}} 请求方法来说,当且仅当服务器上没有任何资源的 {{HTTPHeader("ETag")}} 属性值与这个首部中列出的相匹配的时候,服务器端才会返回所请求的资源,响应码为 {{HTTPStatus("200")}} 。对于其他方法来说,当且仅当最终确认没有已存在的资源的 {{HTTPHeader("ETag")}} 属性值与这个首部中所列出的相匹配的时候,才会对请求进行相应的处理。

    -

    对于  {{HTTPMethod("GET")}} 和 {{HTTPMethod("HEAD")}} 方法来说,当验证失败的时候,服务器端必须返回响应码 304(Not Modified,未改变)。对于能够引发服务器状态改变的方法,则返回 412(Precondition Failed,前置条件失败)。需要注意的是,服务器端在生成状态码为 304 的响应的时候,必须同时生成以下会存在于对应的 200 响应中的首部:Cache-Control、Content-Location、Date、ETag、Expires 和 Vary 。

    +

    对于  {{HTTPMethod("GET")}} 和 {{HTTPMethod("HEAD")}} 方法来说,当验证失败的时候,服务器端必须返回响应码 304(Not Modified,未改变)。对于能够引发服务器状态改变的方法,则返回 412(Precondition Failed,前置条件失败)。需要注意的是,服务器端在生成状态码为 304 的响应的时候,必须同时生成以下会存在于对应的 200 响应中的首部:Cache-Control、Content-Location、Date、ETag、Expires 和 Vary。

    {{HTTPHeader("ETag")}} 属性之间的比较采用的是弱比较算法,即两个文件除了每个字节都相同外,内容一致也可以认为是相同的。例如,如果两个页面仅仅在页脚的生成时间有所不同,就可以认为二者是相同的。

    diff --git a/files/zh-cn/web/http/headers/index.html b/files/zh-cn/web/http/headers/index.html index 3bdd8e211cdfef..dc34473f7c2bf1 100644 --- a/files/zh-cn/web/http/headers/index.html +++ b/files/zh-cn/web/http/headers/index.html @@ -224,7 +224,7 @@ - + diff --git a/files/zh-cn/web/http/headers/last-modified/index.html b/files/zh-cn/web/http/headers/last-modified/index.html index 35b06402cf273a..f73f1a3ee7fbcd 100644 --- a/files/zh-cn/web/http/headers/last-modified/index.html +++ b/files/zh-cn/web/http/headers/last-modified/index.html @@ -7,7 +7,7 @@ ---
    {{HTTPSidebar}}
    -

    The Last-Modified  是一个响应首部,其中包含源头服务器认定的资源做出修改的日期及时间。 它通常被用作一个验证器来判断接收到的或者存储的资源是否彼此一致。由于精确度比  {{HTTPHeader("ETag")}} 要低,所以这是一个备用机制。包含有  {{HTTPHeader("If-Modified-Since")}} 或 {{HTTPHeader("If-Unmodified-Since")}} 首部的条件请求会使用这个字段。

    +

    The Last-Modified  是一个响应首部,其中包含源头服务器认定的资源做出修改的日期及时间。它通常被用作一个验证器来判断接收到的或者存储的资源是否彼此一致。由于精确度比  {{HTTPHeader("ETag")}} 要低,所以这是一个备用机制。包含有  {{HTTPHeader("If-Modified-Since")}} 或 {{HTTPHeader("If-Unmodified-Since")}} 首部的条件请求会使用这个字段。

    DNT设置该值为 1, 表明用户明确退出任何形式的网上跟踪。设置该值为 1,表明用户明确退出任何形式的网上跟踪。 Supported by Firefox 4, Firefox 5 for mobile, IE9, and a few major companies. {{SpecName("Tracking")}}
    diff --git a/files/zh-cn/web/http/headers/location/index.html b/files/zh-cn/web/http/headers/location/index.html index 5da9bc86281f31..f095446e0f7b6b 100644 --- a/files/zh-cn/web/http/headers/location/index.html +++ b/files/zh-cn/web/http/headers/location/index.html @@ -20,7 +20,7 @@

    状态码为上述之一的所有响应都会带有一个 Location 首部。

    -

    除了重定向响应之外, 状态码为 {{HTTPHeader("201")}} (Created) 的消息也会带有 Location 首部。它指向的是新创建的资源的地址。

    +

    除了重定向响应之外,状态码为 {{HTTPHeader("201")}} (Created) 的消息也会带有 Location 首部。它指向的是新创建的资源的地址。

    Location 与 Content-Location是不同的,前者(Location )指定的是一个重定向请求的目的地址(或者新创建的文件的 URL),而后者( Content-Location)指向的是经过内容协商后的资源的直接地址,不需要进行进一步的内容协商。Location 对应的是响应,而 Content-Location 对应的是要返回的实体。

    @@ -76,5 +76,5 @@

    相关内容

    • {{HTTPHeader("Content-Location")}}
    • -
    • 包含 Location 首部的响应状态码: {{HTTPStatus("201")}}, {{HTTPStatus("301")}}, {{HTTPStatus("302")}}, {{HTTPStatus("303")}}, {{HTTPStatus("307")}}, {{HTTPStatus("308")}}。
    • +
    • 包含 Location 首部的响应状态码:{{HTTPStatus("201")}}, {{HTTPStatus("301")}}, {{HTTPStatus("302")}}, {{HTTPStatus("303")}}, {{HTTPStatus("307")}}, {{HTTPStatus("308")}}。
    diff --git a/files/zh-cn/web/http/headers/public-key-pins/index.html b/files/zh-cn/web/http/headers/public-key-pins/index.html index cc27ea93b48e5a..73474390265730 100644 --- a/files/zh-cn/web/http/headers/public-key-pins/index.html +++ b/files/zh-cn/web/http/headers/public-key-pins/index.html @@ -10,7 +10,7 @@ ---
    {{HTTPSidebar}}
    -

    Public-Key-Pins 是一个响应首部,其包含该 Web 服务器用来进行加密的 public {{glossary('key')}}(公钥)信息 ,以此来降低使用伪造证书进行 {{Glossary("MITM")}}  (中间人攻击)的风险。如果锚定的加密串与服务器返回的公钥不匹配,那么浏览器将会认定响应不合法,并且不会将结果展示给用户。

    +

    Public-Key-Pins 是一个响应首部,其包含该 Web 服务器用来进行加密的 public {{glossary('key')}}(公钥)信息,以此来降低使用伪造证书进行 {{Glossary("MITM")}}  (中间人攻击)的风险。如果锚定的加密串与服务器返回的公钥不匹配,那么浏览器将会认定响应不合法,并且不会将结果展示给用户。

    更多相关信息请参考 HTTP Public Key Pinning 这篇文章。

    diff --git a/files/zh-cn/web/http/headers/referrer-policy/index.html b/files/zh-cn/web/http/headers/referrer-policy/index.html index 3201c8d74d21fe..6b1ba7aad91c5a 100644 --- a/files/zh-cn/web/http/headers/referrer-policy/index.html +++ b/files/zh-cn/web/http/headers/referrer-policy/index.html @@ -229,7 +229,7 @@

    浏览器兼容性

    {{Compat("http.headers.Referrer-Policy")}}

    -

    注意: 从版本 53 起,Gecko 在 about:config 中提供了一项偏好设置,使得用户可以自行设定默认的 Referrer-Policy 值 —— network.http.referer.userControlPolicy 。可选的值包括:

    +

    注意: 从版本 53 起,Gecko 在 about:config 中提供了一项偏好设置,使得用户可以自行设定默认的 Referrer-Policy 值 —— network.http.referer.userControlPolicy。可选的值包括:

    • 0 — no-referrer
    • diff --git a/files/zh-cn/web/http/headers/save-data/index.html b/files/zh-cn/web/http/headers/save-data/index.html index 2c9001f608874d..fe4f2df3b844f5 100644 --- a/files/zh-cn/web/http/headers/save-data/index.html +++ b/files/zh-cn/web/http/headers/save-data/index.html @@ -12,7 +12,7 @@ ---

      {{HTTPSidebar}}

      -

      Save-Data 请求头字段是一个布尔值,在请求中,表示客户端对减少数据使用量的偏好。 这可能是传输成本高,连接速度慢等原因。

      +

      Save-Data 请求头字段是一个布尔值,在请求中,表示客户端对减少数据使用量的偏好。这可能是传输成本高,连接速度慢等原因。

      值为 on 时,明确表示用户选择使用客户端简化数据使用模式,并且当与源进行通信时允许他们提供替代内容以减少下载的数据,例如较小的图像和视频资源,不同的标记和样式,禁用轮询和自动更新等。

      @@ -28,7 +28,7 @@

      指令

      <sd-token>
      -
      一个数值,表示客户端是否想要选择简化数据使用模式。 on 表示是,而 off(默认值)表示不。
      +
      一个数值,表示客户端是否想要选择简化数据使用模式。on 表示是,而 off(默认值)表示不。

      示例

      diff --git a/files/zh-cn/web/http/headers/sec-websocket-accept/index.html b/files/zh-cn/web/http/headers/sec-websocket-accept/index.html index c87067638560f0..36c3ac5f7dc0ef 100644 --- a/files/zh-cn/web/http/headers/sec-websocket-accept/index.html +++ b/files/zh-cn/web/http/headers/sec-websocket-accept/index.html @@ -5,7 +5,7 @@ ---
      {{HTTPSidebar}}
      -

      Sec-WebSocket-Accept 头(header)用在 websocket 开放握手中。它会出现在响应头中。 也就是说,这是由服务器发送到客户端的头(header),用以告知服务器愿发起一个 websocket 连接。

      +

      Sec-WebSocket-Accept 头(header)用在 websocket 开放握手中。它会出现在响应头中。也就是说,这是由服务器发送到客户端的头(header),用以告知服务器愿发起一个 websocket 连接。

      Browser compatibility

      diff --git a/files/zh-cn/web/http/headers/set-cookie/index.html b/files/zh-cn/web/http/headers/set-cookie/index.html index 3b62a3b7dac268..72e76b42a094e0 100644 --- a/files/zh-cn/web/http/headers/set-cookie/index.html +++ b/files/zh-cn/web/http/headers/set-cookie/index.html @@ -78,7 +78,7 @@

      示例

      -

      会话期 cookies 将会在客户端关闭时被移除。 会话期 cookie 不设置 Expires 或 Max-Age 指令。注意浏览器通常支持会话恢复功能。

      +

      会话期 cookies 将会在客户端关闭时被移除。会话期 cookie 不设置 Expires 或 Max-Age 指令。注意浏览器通常支持会话恢复功能。

      Set-Cookie: sessionid=38afes7a8; HttpOnly; Path=/
      diff --git a/files/zh-cn/web/http/headers/strict-transport-security/index.html b/files/zh-cn/web/http/headers/strict-transport-security/index.html index ac9ac630227443..5174c403a20b80 100644 --- a/files/zh-cn/web/http/headers/strict-transport-security/index.html +++ b/files/zh-cn/web/http/headers/strict-transport-security/index.html @@ -67,7 +67,7 @@

      浏览器如何处理

      示例场景

      -

      你连接到一个免费 WiFi 接入点,然后开始浏览网站,访问你的网上银行,查看你的支出,并且支付一些订单。很不幸,你接入的 WiFi 实际上是黑客的笔记本热点,他们拦截了你最初的 HTTP 请求,然后跳转到一个你银行网站一模一样的钓鱼网站。 现在,你的隐私数据暴露给黑客了。

      +

      你连接到一个免费 WiFi 接入点,然后开始浏览网站,访问你的网上银行,查看你的支出,并且支付一些订单。很不幸,你接入的 WiFi 实际上是黑客的笔记本热点,他们拦截了你最初的 HTTP 请求,然后跳转到一个你银行网站一模一样的钓鱼网站。现在,你的隐私数据暴露给黑客了。

      Strict Transport Security 解决了这个问题;只要你通过 HTTPS 请求访问银行网站,并且银行网站配置好 Strict Transport Security,你的浏览器知道自动使用 HTTPS 请求,这可以阻止黑客的中间人攻击的把戏。

      diff --git a/files/zh-cn/web/http/headers/te/index.html b/files/zh-cn/web/http/headers/te/index.html index a89355d502268c..b880ea16ae370f 100644 --- a/files/zh-cn/web/http/headers/te/index.html +++ b/files/zh-cn/web/http/headers/te/index.html @@ -9,9 +9,9 @@ ---
      {{HTTPSidebar}}
      -

      TE 请求型头部用来指定用户代理希望使用的传输编码类型。(可以将其非正式称为 Accept-Transfer-Encoding, 这个名称显得更直观一些)。

      +

      TE 请求型头部用来指定用户代理希望使用的传输编码类型。(可以将其非正式称为 Accept-Transfer-Encoding,这个名称显得更直观一些)。

      -

      可以参考  {{HTTPHeader("Transfer-Encoding")}} 来获取更多关于传输编码的细节信息。值得注意的是, 支持 HTTP/1.1 协议的接收方一定可以处理 chunked 传输编码请求,所以没有必要一定在  TE 首部指定“chunked”关键字。然而,如果客户端将要接收编码在 chunked 包体里面的"trailer"信息的时候,主动指定该头部将会非常有用。

      +

      可以参考  {{HTTPHeader("Transfer-Encoding")}} 来获取更多关于传输编码的细节信息。值得注意的是,支持 HTTP/1.1 协议的接收方一定可以处理 chunked 传输编码请求,所以没有必要一定在  TE 首部指定“chunked”关键字。然而,如果客户端将要接收编码在 chunked 包体里面的"trailer"信息的时候,主动指定该头部将会非常有用。

       

      diff --git a/files/zh-cn/web/http/headers/tk/index.html b/files/zh-cn/web/http/headers/tk/index.html index 191dc634f28d56..d72d22dc8ef17f 100644 --- a/files/zh-cn/web/http/headers/tk/index.html +++ b/files/zh-cn/web/http/headers/tk/index.html @@ -53,7 +53,7 @@

      指令

      C
      在经过用户同意的情况下进行跟踪。源头服务器相信它事先得到了许可来跟踪用户、用户代理或者设备。
      P
      -
      尚未接收到的许可。 源头服务器不能实时知道它是否获得了事先许可来跟踪用户、用户代理或者设备,但是会承诺不采用或者共享标记为 DNT:1 的数据,直到获得了事先许可,并进一步承诺将会在 48 小时之内对未经许可的资源进行删除或者对其进行消除身份识别信息处理。
      +
      尚未接收到的许可。源头服务器不能实时知道它是否获得了事先许可来跟踪用户、用户代理或者设备,但是会承诺不采用或者共享标记为 DNT:1 的数据,直到获得了事先许可,并进一步承诺将会在 48 小时之内对未经许可的资源进行删除或者对其进行消除身份识别信息处理。
      D
      忽略 DNT 首部。源头服务器不支持或者不愿意遵守用户代理发送的跟踪偏好。
      U
      diff --git a/files/zh-cn/web/http/headers/via/index.html b/files/zh-cn/web/http/headers/via/index.html index c770e496591863..b3289e9f028100 100644 --- a/files/zh-cn/web/http/headers/via/index.html +++ b/files/zh-cn/web/http/headers/via/index.html @@ -37,7 +37,7 @@

      指令

      <protocol-name>
      可选。所使用的协议名称,如 "HTTP"。
      <protocol-version>
      -
      所使用的协议版本号, 例如 "1.1"。
      +
      所使用的协议版本号,例如 "1.1"。
      <host> and <port>
      公共代理的 URL 及端口号。
      <pseudonym>
      diff --git a/files/zh-cn/web/http/headers/warning/index.html b/files/zh-cn/web/http/headers/warning/index.html index 0f432d40862a1f..bf953c2b88ac52 100644 --- a/files/zh-cn/web/http/headers/warning/index.html +++ b/files/zh-cn/web/http/headers/warning/index.html @@ -11,7 +11,7 @@

      Warning 是一个通用报文首部,包含报文当前状态可能存在的问题。在响应中可以出现多个 Warning 首部。

      -

      一般来说, Warning 首部可以应用于任何类型的报文。然而一部分警告码(warn-code)是为缓存代理服务器定制的,并且只可以应用在响应报文中。

      +

      一般来说,Warning 首部可以应用于任何类型的报文。然而一部分警告码(warn-code)是为缓存代理服务器定制的,并且只可以应用在响应报文中。

    diff --git a/files/zh-cn/web/http/headers/www-authenticate/index.html b/files/zh-cn/web/http/headers/www-authenticate/index.html index 5c4780e651e861..59cbf02262b0ac 100644 --- a/files/zh-cn/web/http/headers/www-authenticate/index.html +++ b/files/zh-cn/web/http/headers/www-authenticate/index.html @@ -37,7 +37,7 @@

    指令

    <type>
    -
    Authentication type,一个通用类型 "Basic"。 IANA 维护了一个 list of Authentication schemes
    +
    Authentication type,一个通用类型 "Basic"。IANA 维护了一个 list of Authentication schemes
    realm=<realm>
    一个保护区域的描述。如果未指定 realm,客户端通常显示一个格式化的主机名来替代。
    charset=<charset>
    diff --git a/files/zh-cn/web/http/headers/x-forwarded-proto/index.html b/files/zh-cn/web/http/headers/x-forwarded-proto/index.html index db92b0cb4372b3..aa9b666ab29466 100644 --- a/files/zh-cn/web/http/headers/x-forwarded-proto/index.html +++ b/files/zh-cn/web/http/headers/x-forwarded-proto/index.html @@ -9,7 +9,7 @@ ---
    {{HTTPSidebar}}
    -

    X-Forwarded-Proto (XFP) 是一个事实上的标准首部,用来确定客户端与代理服务器或者负载均衡服务器之间的连接所采用的传输协议(HTTP 或 HTTPS)。在服务器的访问日志中记录的是负载均衡服务器与服务器之间的连接所使用的传输协议,而非客户端与负载均衡服务器之间所使用的协议。为了确定客户端与负载均衡服务器之间所使用的协议, X-Forwarded-Proto 就派上了用场。

    +

    X-Forwarded-Proto (XFP) 是一个事实上的标准首部,用来确定客户端与代理服务器或者负载均衡服务器之间的连接所采用的传输协议(HTTP 或 HTTPS)。在服务器的访问日志中记录的是负载均衡服务器与服务器之间的连接所使用的传输协议,而非客户端与负载均衡服务器之间所使用的协议。为了确定客户端与负载均衡服务器之间所使用的协议,X-Forwarded-Proto 就派上了用场。

    HTTP 协议中的 {{HTTPHeader("Forwarded")}}  是这个消息首部的标准化版本。

    diff --git a/files/zh-cn/web/http/headers/x-xss-protection/index.html b/files/zh-cn/web/http/headers/x-xss-protection/index.html index 9df4fc823f4a56..f1ef5e02fd15f0 100644 --- a/files/zh-cn/web/http/headers/x-xss-protection/index.html +++ b/files/zh-cn/web/http/headers/x-xss-protection/index.html @@ -8,7 +8,7 @@ ---
    {{HTTPSidebar}}
    -

    HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 ({{Glossary("XSS")}}) 时,浏览器将停止加载页面。若网站设置了良好的 {{HTTPHeader("Content-Security-Policy")}} 来禁用内联 JavaScript ('unsafe-inline'),现代浏览器不太需要这些保护, 但其仍然可以为尚不支持 {{Glossary("CSP")}} 的旧版浏览器的用户提供保护。

    +

    HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 ({{Glossary("XSS")}}) 时,浏览器将停止加载页面。若网站设置了良好的 {{HTTPHeader("Content-Security-Policy")}} 来禁用内联 JavaScript ('unsafe-inline'),现代浏览器不太需要这些保护,但其仍然可以为尚不支持 {{Glossary("CSP")}} 的旧版浏览器的用户提供保护。

    @@ -35,11 +35,11 @@

    语法

    0
    禁止 XSS 过滤。
    1
    -
    启用 XSS 过滤(通常浏览器是默认的)。 如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。
    +
    启用 XSS 过滤(通常浏览器是默认的)。如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。
    1;mode=block
    -
    启用 XSS 过滤。 如果检测到攻击,浏览器将不会清除页面,而是阻止页面加载。
    +
    启用 XSS 过滤。如果检测到攻击,浏览器将不会清除页面,而是阻止页面加载。
    1; report=<reporting-URI>  (Chromium only)
    -
    启用 XSS 过滤。 如果检测到跨站脚本攻击,浏览器将清除页面并使用 CSP {{CSP("report-uri")}}指令的功能发送违规报告。
    +
    启用 XSS 过滤。如果检测到跨站脚本攻击,浏览器将清除页面并使用 CSP {{CSP("report-uri")}}指令的功能发送违规报告。

    范例

    diff --git a/files/zh-cn/web/http/link_prefetching_faq/index.html b/files/zh-cn/web/http/link_prefetching_faq/index.html index abcc20108111ad..bb56218f1a066d 100644 --- a/files/zh-cn/web/http/link_prefetching_faq/index.html +++ b/files/zh-cn/web/http/link_prefetching_faq/index.html @@ -77,7 +77,7 @@

    作为服务器管理员,我可以区分预取请求和普通请求吗?

    @@ -85,16 +85,16 @@

    header.当然,此请求标头根本不是标准化的,并且在将来的 Mozilla 版本中可能会更改。 Chrome 使用“ X-Purpose: prefetch”或“Purpose: prefetch 的header

    +

    Of course, this request header is not at all standardized, and it may change in future Mozilla releases. Chrome uses "X-Purpose: prefetch" or "Purpose: prefetch" header.当然,此请求标头根本不是标准化的,并且在将来的 Mozilla 版本中可能会更改。Chrome 使用“X-Purpose: prefetch”或“Purpose: prefetch 的header

    -

    是的,您可以设置一个隐藏的首选项来禁用链接预取。 将此行添加到位于配置文件目录中的 prefs.js 文件中(或通过about:config进行适当的更改):

    +

    是的,您可以设置一个隐藏的首选项来禁用链接预取。将此行添加到位于配置文件目录中的 prefs.js 文件中(或通过about:config进行适当的更改):

    user_pref("network.prefetch-next", false);
     
    -

    但是,从理论上讲,如果需要禁用链接预取,实现就一定会存在问题。 如果它不能正确运行,我们宁愿改进实现,也不希望用户找到并调整一些隐藏的偏好。

    +

    但是,从理论上讲,如果需要禁用链接预取,实现就一定会存在问题。如果它不能正确运行,我们宁愿改进实现,也不希望用户找到并调整一些隐藏的偏好。

    那些按网络流量付费的人呢?

    @@ -102,13 +102,13 @@

    哪些浏览器支持链接预取?

    -

    基于 Mozilla 1.2(或更高版本)的浏览器以及基于 Mozilla 1.0.2(或更高版本)的浏览器均支持预取。 这包括 Firefox 和 Netscape 7.01+。 截至 2003 年 3 月,Camino 构建基于 Mozilla 1.0.1,因此不支持预取。 测试您的浏览器是否支持链接预取。

    +

    基于 Mozilla 1.2(或更高版本)的浏览器以及基于 Mozilla 1.0.2(或更高版本)的浏览器均支持预取。这包括 Firefox 和 Netscape 7.01+。截至 2003 年 3 月,Camino 构建基于 Mozilla 1.0.1,因此不支持预取。测试您的浏览器是否支持链接预取。

    隐私问题

    diff --git a/files/zh-cn/web/http/messages/index.html b/files/zh-cn/web/http/messages/index.html index a335185d73328f..15c8cfb2d096f7 100644 --- a/files/zh-cn/web/http/messages/index.html +++ b/files/zh-cn/web/http/messages/index.html @@ -11,7 +11,7 @@

    HTTP 消息由采用 ASCII 编码的多行文本构成。在 HTTP/1.1 及早期版本中,这些消息通过连接公开地发送。在 HTTP/2 中,为了优化和性能方面的改进,曾经可人工阅读的消息被分到多个 HTTP 帧中。

    -

    Web 开发人员或网站管理员,很少自己手工创建这些原始的 HTTP 消息︰ 由软件、浏览器、 代理或服务器完成。他们通过配置文件(用于代理服务器或服务器),API(用于浏览器)或其他接口提供 HTTP 消息。

    +

    Web 开发人员或网站管理员,很少自己手工创建这些原始的 HTTP 消息︰ 由软件、浏览器、代理或服务器完成。他们通过配置文件(用于代理服务器或服务器),API(用于浏览器)或其他接口提供 HTTP 消息。

    From a user-, script-, or server- generated event, an HTTP/1.x msg is generated, and if HTTP/2 is in use, it is binary framed into an HTTP/2 stream, then sent.

    @@ -25,7 +25,7 @@
  • 一行起始行用于描述要执行的请求,或者是对应的状态,成功或失败。这个起始行总是单行的。
  • 一个可选的 HTTP 头集合指明请求或描述消息正文。
  • 一个空行指示所有关于请求的元数据已经发送完毕。
  • -
  • 一个可选的包含请求相关数据的正文 (比如 HTML 表单内容), 或者响应相关的文档。 正文的大小有起始行的 HTTP 头来指定。
  • +
  • 一个可选的包含请求相关数据的正文 (比如 HTML 表单内容), 或者响应相关的文档。正文的大小有起始行的 HTTP 头来指定。
  • 起始行和  HTTP 消息中的 HTTP 头统称为请求头,而其有效负载被称为消息正文。

    @@ -49,7 +49,7 @@

    起始行

    OPTIONS /anypage.html HTTP/1.0
  • 一个完整的 URL,被称为 绝对形式 (absolute form),主要在使用 GET 方法连接到代理时使用。
    GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.1
  • -
  • 由域名和可选端口(以':'为前缀)组成的 URL 的 authority component,称为 authority form。 仅在使用 CONNECT 建立 HTTP 隧道时才使用。
    +
  • 由域名和可选端口(以':'为前缀)组成的 URL 的 authority component,称为 authority form。仅在使用 CONNECT 建立 HTTP 隧道时才使用。
    CONNECT developer.mozilla.org:80 HTTP/1.1
  • 星号形式 (asterisk form),一个简单的星号 ('*'),配合 OPTIONS 方法使用,代表整个服务器。
    OPTIONS * HTTP/1.1
  • @@ -60,7 +60,7 @@

    起始行

    Headers

    -

    来自请求的 HTTP headers 遵循和 HTTP header 相同的基本结构:不区分大小写的字符串,紧跟着的冒号 (':') 和一个结构取决于 header 的值。 整个 header(包括值)由一行组成,这一行可以相当长。

    +

    来自请求的 HTTP headers 遵循和 HTTP header 相同的基本结构:不区分大小写的字符串,紧跟着的冒号 (':') 和一个结构取决于 header 的值。整个 header(包括值)由一行组成,这一行可以相当长。

    有许多请求头可用,它们可以分为几组:

    @@ -74,7 +74,7 @@

    Headers

    Body

    -

    请求的最后一部分是它的 body。不是所有的请求都有一个 body:例如获取资源的请求,GET,HEAD,DELETE 和 OPTIONS,通常它们不需要 body。 有些请求将数据发送到服务器以便更新数据:常见的的情况是 POST 请求(包含 HTML 表单数据)。

    +

    请求的最后一部分是它的 body。不是所有的请求都有一个 body:例如获取资源的请求,GET,HEAD,DELETE 和 OPTIONS,通常它们不需要 body。有些请求将数据发送到服务器以便更新数据:常见的的情况是 POST 请求(包含 HTML 表单数据)。

    Body 大致可分为两类:

    @@ -99,7 +99,7 @@

    状态行

    Headers

    -

    响应的  HTTP headers 遵循和任何其它 header 相同的结构:不区分大小写的字符串,紧跟着的冒号 (':') 和一个结构取决于 header 类型的值。 整个 header(包括其值)表现为单行形式。

    +

    响应的  HTTP headers 遵循和任何其它 header 相同的结构:不区分大小写的字符串,紧跟着的冒号 (':') 和一个结构取决于 header 类型的值。整个 header(包括其值)表现为单行形式。

    有许多响应头可用,这些响应头可以分为几组:

    diff --git a/files/zh-cn/web/http/methods/head/index.html b/files/zh-cn/web/http/methods/head/index.html index 22c27a1258010a..e22f31a456dcb0 100644 --- a/files/zh-cn/web/http/methods/head/index.html +++ b/files/zh-cn/web/http/methods/head/index.html @@ -11,7 +11,7 @@

    HTTP HEAD 方法 请求资源的头部信息,并且这些头部与 HTTP {{HTTPMethod("GET")}} 方法请求时返回的一致。该请求方法的一个使用场景是在下载一个大文件前先获取其大小再决定是否要下载,以此可以节约带宽资源。

    -

    HEAD 方法的响应不应包含响应正文。即使包含了正文也必须忽略掉. 虽然描述正文信息的 {{glossary("Entity header", "entity headers")}}, 例如 {{HTTPHeader("Content-Length")}} 可能会包含在响应中,但它们并不是用来描述 HEAD 响应本身的,而是用来描述同样情况下的 {{HTTPMethod("GET")}} 请求应该返回的响应。

    +

    HEAD 方法的响应不应包含响应正文。即使包含了正文也必须忽略掉。虽然描述正文信息的 {{glossary("Entity header", "entity headers")}}, 例如 {{HTTPHeader("Content-Length")}} 可能会包含在响应中,但它们并不是用来描述 HEAD 响应本身的,而是用来描述同样情况下的 {{HTTPMethod("GET")}} 请求应该返回的响应。

    如果 HEAD 请求的结果显示在上一次 {{HTTPMethod("GET")}} 请求后缓存的资源已经过期了,即使没有发出{{HTTPMethod("GET")}}请求,缓存也会失效

    diff --git a/files/zh-cn/web/http/methods/patch/index.html b/files/zh-cn/web/http/methods/patch/index.html index 9d743359694d7f..ae73e21254f9a0 100644 --- a/files/zh-cn/web/http/methods/patch/index.html +++ b/files/zh-cn/web/http/methods/patch/index.html @@ -13,7 +13,7 @@

    在 HTTP 协议中,请求方法 PATCH  用于对资源进行部分修改。

    -

    在 HTTP 协议中, {{HTTPMethod("PUT")}} 方法已经被用来表示对资源进行整体覆盖, 而 {{HTTPMethod("POST")}} 方法则没有对标准的补丁格式的提供支持。不同于  PUT 方法,而与 POST 方法类似,PATCH  方法是非幂等的,这就意味着连续多个的相同请求会产生不同的效果。

    +

    在 HTTP 协议中, {{HTTPMethod("PUT")}} 方法已经被用来表示对资源进行整体覆盖,而 {{HTTPMethod("POST")}} 方法则没有对标准的补丁格式的提供支持。不同于  PUT 方法,而与 POST 方法类似,PATCH  方法是非幂等的,这就意味着连续多个的相同请求会产生不同的效果。

    要判断一台服务器是否支持  PATCH 方法,那么就看它是否将其添加到了响应首部 {{HTTPHeader("Allow")}} 或者 {{HTTPHeader("Access-Control-Allow-Methods")}}(在跨域访问的场合,CORS)的方法列表中 。

    diff --git a/files/zh-cn/web/http/methods/trace/index.html b/files/zh-cn/web/http/methods/trace/index.html index a259d348c2e408..ea295295436746 100644 --- a/files/zh-cn/web/http/methods/trace/index.html +++ b/files/zh-cn/web/http/methods/trace/index.html @@ -5,9 +5,9 @@ ---
    {{HTTPSidebar}}
    -

    HTTP TRACE 方法 实现沿通向目标资源的路径的消息环回(loop-back)测试 ,提供了一种实用的 debug 机制。

    +

    HTTP TRACE 方法 实现沿通向目标资源的路径的消息环回(loop-back)测试,提供了一种实用的 debug 机制。

    -

    请求的最终接收者应当原样反射(reflect)它接收到的消息,除了以下字段部分,作为一个{{httpheader("Content-Type")}} 为 message/http  的 200(OK)响应的消息的主体(body)返回给客户端 。

    +

    请求的最终接收者应当原样反射(reflect)它接收到的消息,除了以下字段部分,作为一个{{httpheader("Content-Type")}} 为 message/http  的 200(OK)响应的消息的主体(body)返回给客户端。

    最终接收者是指初始(origin)服务器,或者第一个接收到 {{httpheader("Max-Forwards")}} 值为 0 的请求的服务器。

    diff --git a/files/zh-cn/web/http/overview/index.html b/files/zh-cn/web/http/overview/index.html index 9e1cf7ef2efa48..b7a461ce9aa101 100644 --- a/files/zh-cn/web/http/overview/index.html +++ b/files/zh-cn/web/http/overview/index.html @@ -170,9 +170,9 @@

    响应

    基于 HTTP 的 APIs


    - 基于 HTTP 的最常用 API 是{{domxref("XMLHttpRequest")}} API,可用于在{{Glossary("user agent")}}和服务器之间交换数据。 现代{{domxref("Fetch API")}}提供相同的功能,具有更强大和灵活的功能集。
    + 基于 HTTP 的最常用 API 是{{domxref("XMLHttpRequest")}} API,可用于在{{Glossary("user agent")}}和服务器之间交换数据。现代{{domxref("Fetch API")}}提供相同的功能,具有更强大和灵活的功能集。

    - 另一种 API,即服务器发送的事件,是一种单向服务,允许服务器使用 HTTP 作为传输机制向客户端发送事件。 使用{{domxref("EventSource")}}接口,客户端打开连接并建立事件句柄。 客户端浏览器自动将到达 HTTP 流的消息转换为适当的{{domxref("Event")}}对象,并将它们传递给专门处理这类{{domxref("Event.type", "type")}}事件的句柄,如果有这么个句柄的话。但如果相应的事件处理句柄根本没有建立,那就交给{{domxref("EventSource.onmessage", "onmessage")}}事件处理程序处理。

    + 另一种 API,即服务器发送的事件,是一种单向服务,允许服务器使用 HTTP 作为传输机制向客户端发送事件。使用{{domxref("EventSource")}}接口,客户端打开连接并建立事件句柄。客户端浏览器自动将到达 HTTP 流的消息转换为适当的{{domxref("Event")}}对象,并将它们传递给专门处理这类{{domxref("Event.type", "type")}}事件的句柄,如果有这么个句柄的话。但如果相应的事件处理句柄根本没有建立,那就交给{{domxref("EventSource.onmessage", "onmessage")}}事件处理程序处理。

    总结

    diff --git a/files/zh-cn/web/http/protocol_upgrade_mechanism/index.html b/files/zh-cn/web/http/protocol_upgrade_mechanism/index.html index 2f335898076b13..ec4e50acaf79d0 100644 --- a/files/zh-cn/web/http/protocol_upgrade_mechanism/index.html +++ b/files/zh-cn/web/http/protocol_upgrade_mechanism/index.html @@ -7,7 +7,7 @@

    HTTP 协议 提供了一种特殊的机制,这一机制允许将一个已建立的连接升级成新的、不相容的协议。这篇指南涵盖了其工作原理和使用场景。

    -

    通常来说这一机制总是由客户端发起的(不过也有例外,比如说可以由服务端发起升级到传输层安全协议(TLS)), 服务端可以选择是否要升级到新协议。借助这一技术,连接可以以常用的协议启动(如 HTTP/1.1),随后再升级到 HTTP2 甚至是 WebSockets.

    +

    通常来说这一机制总是由客户端发起的(不过也有例外,比如说可以由服务端发起升级到传输层安全协议(TLS)),服务端可以选择是否要升级到新协议。借助这一技术,连接可以以常用的协议启动(如 HTTP/1.1),随后再升级到 HTTP2 甚至是 WebSockets.

    注意:HTTP/2 明确禁止使用此机制,这个机制只属于 HTTP/1.1

    diff --git a/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.html b/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.html index 6321ce85569f33..180a018eb83f97 100644 --- a/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.html +++ b/files/zh-cn/web/http/proxy_servers_and_tunneling/proxy_auto-configuration_pac_file/index.html @@ -718,7 +718,7 @@

    为特定协议设置代理

    自动配置脚本也可以在服务端动态生成。这在某些情况下比较有用,例如根据客户端地址指定不同的代理服务器。

    -

    isInNet()isResolvable()dnsResolve() 应该谨慎使用,这些函数会进行  DNS 查询。其他函数则大都是字符处理函数,不需要 DNS 。如果通过代理连接,代理本身也会进行一次 DNS 查询,这产生了额外的 DNS 请求。并且绝大多数情况下,不需要这些函数来实现特定的功能。

    +

    isInNet()isResolvable()dnsResolve() 应该谨慎使用,这些函数会进行  DNS 查询。其他函数则大都是字符处理函数,不需要 DNS。如果通过代理连接,代理本身也会进行一次 DNS 查询,这产生了额外的 DNS 请求。并且绝大多数情况下,不需要这些函数来实现特定的功能。

    历史与实现

    diff --git a/files/zh-cn/web/http/public_key_pinning/index.html b/files/zh-cn/web/http/public_key_pinning/index.html index 2dabd0c34ec030..75a933c0c84e8b 100644 --- a/files/zh-cn/web/http/public_key_pinning/index.html +++ b/files/zh-cn/web/http/public_key_pinning/index.html @@ -6,14 +6,14 @@

    HTTP 公钥锁定(HPKP)是一种安全功能,它告诉 Web 客户端将特定加密公钥与某个 Web 服务器相关联,以降低使用伪造证书进行 MITM 攻击的风险。

    -

    为确保 TLS 会话中使用的服务器公钥的真实性,此公钥将包装到 X.509 证书中,该证书通常由证书颁发机构(CA)签名。诸如浏览器之类的 Web 客户端信任许多这些 CA,它们都可以为任意域名创建证书。如果攻击者能够攻击单个 CA,则他们可以对各种 TLS 连接执行 MITM 攻击。 HPKP 可以通过告知客户端哪个公钥属于某个 Web 服务器来规避 HTTPS 协议的这种威胁。

    +

    为确保 TLS 会话中使用的服务器公钥的真实性,此公钥将包装到 X.509 证书中,该证书通常由证书颁发机构(CA)签名。诸如浏览器之类的 Web 客户端信任许多这些 CA,它们都可以为任意域名创建证书。如果攻击者能够攻击单个 CA,则他们可以对各种 TLS 连接执行 MITM 攻击。HPKP 可以通过告知客户端哪个公钥属于某个 Web 服务器来规避 HTTPS 协议的这种威胁。

    -

    HPKP 是首次使用信任(TOFU)技术。 Web 服务器第一次通过特殊的 HTTP 标头告诉客户端哪些公钥属于它,客户端会在给定的时间段内存储此信息。当客户端再次访问服务器时,它希望证书链中至少有一个证书包含一个公钥,其指纹已通过 HPKP 已知。如果服务器提供未知的公钥,则客户端应向用户发出警告。

    +

    HPKP 是首次使用信任(TOFU)技术。Web 服务器第一次通过特殊的 HTTP 标头告诉客户端哪些公钥属于它,客户端会在给定的时间段内存储此信息。当客户端再次访问服务器时,它希望证书链中至少有一个证书包含一个公钥,其指纹已通过 HPKP 已知。如果服务器提供未知的公钥,则客户端应向用户发出警告。

     

    -

    Firefox 和 Chrome 禁用固定主机的引脚验证,其验证的证书链终止于用户定义的信任锚(而不是内置信任锚)。 这意味着对于导入自定义根证书的用户,将忽略所有固定违规。

    +

    Firefox 和 Chrome 禁用固定主机的引脚验证,其验证的证书链终止于用户定义的信任锚(而不是内置信任锚)。这意味着对于导入自定义根证书的用户,将忽略所有固定违规。

    启用 HPKP

    @@ -24,7 +24,7 @@

    启用 HPKP

    pin-sha256
    -
    引用的字符串是 Base64 编码的主题公钥信息(SPKI)指纹。 可以为不同的公钥指定多个引脚。 某些浏览器将来可能允许使用其他哈希算法而不是 SHA-256。 请参阅下文,了解如何从证书或密钥文件中提取此信息。
    +
    引用的字符串是 Base64 编码的主题公钥信息(SPKI)指纹。可以为不同的公钥指定多个引脚。某些浏览器将来可能允许使用其他哈希算法而不是 SHA-256。请参阅下文,了解如何从证书或密钥文件中提取此信息。
    max-age
    浏览器应记住仅使用其中一个已定义的密钥访问此站点的时间(以秒为单位)。
    includeSubDomains {{optional_inline}}
    @@ -34,7 +34,7 @@

    启用 HPKP

    -

    注意 :当前规范要求包含第二个用于备份密钥的引脚,该引脚尚未在生产中使用。 这允许更改服务器的公钥,而不会破坏已经记下引脚的客户端的可访问性。 例如,当前一个密钥被泄露时,这很重要。

    +

    注意 :当前规范要求包含第二个用于备份密钥的引脚,该引脚尚未在生产中使用。这允许更改服务器的公钥,而不会破坏已经记下引脚的客户端的可访问性。例如,当前一个密钥被泄露时,这很重要。

    提取 Base64 编码的公钥信息

    @@ -71,7 +71,7 @@

    HPKP 头示例

    max-age=5184000; includeSubDomains; report-uri="https://www.example.org/hpkp-report" -

    在此示例中,pin-sha256 =“cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2 + soZS7sWs =”固定服务器在生产中使用的公钥。 第二个引脚声明引脚-sha256 =“M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE =”也固定备份密钥。 max-age = 5184000 告诉客户端将此信息存储两个月,根据 IETF RFC,这是一个合理的时间限制。 此密钥固定也适用于所有子域,includeSubDomains 声明告知。 最后,report-uri =“https://www.example.net/hpkp-report”解释了报告引脚验证失败的位置。

    +

    在此示例中,pin-sha256 =“cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2 + soZS7sWs =”固定服务器在生产中使用的公钥。第二个引脚声明引脚-sha256 =“M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE =”也固定备份密钥。max-age = 5184000 告诉客户端将此信息存储两个月,根据 IETF RFC,这是一个合理的时间限制。此密钥固定也适用于所有子域,includeSubDomains 声明告知。最后,report-uri =“https://www.example.net/hpkp-report”解释了报告引脚验证失败的位置。

    Report-Only header

    diff --git a/files/zh-cn/web/http/range_requests/index.html b/files/zh-cn/web/http/range_requests/index.html index f550347720b99b..fb479e6b565eb0 100644 --- a/files/zh-cn/web/http/range_requests/index.html +++ b/files/zh-cn/web/http/range_requests/index.html @@ -14,7 +14,7 @@

    检测服务器端是否支持范围请求

    -

    假如在响应中存在 {{HTTPHeader("Accept-Ranges")}} 首部(并且它的值不为 “none”),那么表示该服务器支持范围请求。例如,你可以使用 cURL 发送一个 {{HTTPMethod("HEAD")}} 请求来进行检测。

    +

    假如在响应中存在 {{HTTPHeader("Accept-Ranges")}} 首部(并且它的值不为“none”),那么表示该服务器支持范围请求。例如,你可以使用 cURL 发送一个 {{HTTPMethod("HEAD")}} 请求来进行检测。

    curl -I http://i.imgur.com/z4d4kWk.jpg
     
    @@ -24,7 +24,7 @@ 

    检测服务器端是否支 Content-Length: 146515

    -

    在上面的响应中, Accept-Ranges: bytes 表示界定范围的单位是 bytes 。这里  {{HTTPHeader("Content-Length")}} 也是有效信息,因为它提供了要检索的图片的完整大小。

    +

    在上面的响应中, Accept-Ranges: bytes 表示界定范围的单位是 bytes。这里  {{HTTPHeader("Content-Length")}} 也是有效信息,因为它提供了要检索的图片的完整大小。

    如果站点未发送 Accept-Ranges 首部,那么它们有可能不支持范围请求。一些站点会明确将其值设置为 "none",以此来表明不支持。在这种情况下,某些应用的下载管理器会将暂停按钮禁用。

    diff --git a/files/zh-cn/web/http/redirections/index.html b/files/zh-cn/web/http/redirections/index.html index d4316a97bb8560..95f27a502ce60e 100644 --- a/files/zh-cn/web/http/redirections/index.html +++ b/files/zh-cn/web/http/redirections/index.html @@ -20,9 +20,9 @@

    原理

    -

    在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。

    +

    在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx。

    -

    浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL ,并立即进行加载;大多数情况下,除了会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。
    +

    浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL,并立即进行加载;大多数情况下,除了会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。
     

    @@ -37,7 +37,7 @@

    原理

    永久重定向

    -

    这种重定向操作是永久性的。它表示原 URL 不应再被使用,而应该优先选用新的 URL。搜索引擎机器人会在遇到该状态码时触发更新操作,在其索引库中修改与该资源相关的 URL 。

    +

    这种重定向操作是永久性的。它表示原 URL 不应再被使用,而应该优先选用新的 URL。搜索引擎机器人会在遇到该状态码时触发更新操作,在其索引库中修改与该资源相关的 URL。

    @@ -66,7 +66,7 @@

    永久重定向

    -

    [1] 该规范无意使方法发生改变,但在实际应用中用户代理会这么做。 308 状态码被创建用来消除在使用非 GET 方法时的歧义行为。

    +

    [1] 该规范无意使方法发生改变,但在实际应用中用户代理会这么做。308 状态码被创建用来消除在使用非 GET 方法时的歧义行为。

    临时重定向

    @@ -105,7 +105,7 @@

    临时重定向

    -

    [2] 该规范无意使方法发生改变,但在实际应用中用户代理会这么做。 307 状态码被创建用来消除在使用非 GET 方法时的歧义行为。

    +

    [2] 该规范无意使方法发生改变,但在实际应用中用户代理会这么做。307 状态码被创建用来消除在使用非 GET 方法时的歧义行为。

    特殊重定向

    @@ -185,7 +185,7 @@

    应用场景

    域名别称

    -

    理想情况下,一项资源只有一个访问位置,也就是只有一个 URL 。但是由于种种原因,需要为资源设定不同的名称(即不同的域名,例如带有和不带有 www 前缀的 URL,以及简短易记的 URL 等)。在这种情况下,实用的方法是将其重定向到那个实际的(标准的)URL,而不是复制资源。

    +

    理想情况下,一项资源只有一个访问位置,也就是只有一个 URL。但是由于种种原因,需要为资源设定不同的名称(即不同的域名,例如带有和不带有 www 前缀的 URL,以及简短易记的 URL 等)。在这种情况下,实用的方法是将其重定向到那个实际的(标准的)URL,而不是复制资源。

    在以下几种情况下可以使用域名别称:

    @@ -201,7 +201,7 @@

    保持链接有效

    -

    当你重构 Web 站点的时候,资源的 URL 会发生改变。即便是你可以更新站点内部的链接来适应新的命名体系,但无法控制被外部资源使用的 URL 。

    +

    当你重构 Web 站点的时候,资源的 URL 会发生改变。即便是你可以更新站点内部的链接来适应新的命名体系,但无法控制被外部资源使用的 URL。

    你并不想因此而使旧链接失效,因为它们会为你带来宝贵的用户(并且帮助优化你的 SEO),所以需要建立从旧链接到新链接的重定向映射。

    @@ -237,7 +237,7 @@

    Apache

    URL https://example.com/ 会被重定向至 https://www.example.com/ ,URL 下的任何文件或目录也将重定向到该 URL(https://example.com/some-page 将重定向至 https://www.example.com/some-page)。

    -

    Redirect_Match 指令的功能与之类似,不同之处在于它可以通过正则表达式来指定一批受影响的 URL :

    +

    Redirect_Match 指令的功能与之类似,不同之处在于它可以通过正则表达式来指定一批受影响的 URL:

    RedirectMatch ^/images/(.*)$ http://images.example.com/$1
    diff --git a/files/zh-cn/web/http/status/301/index.html b/files/zh-cn/web/http/status/301/index.html index 1566014772d9be..d2654f0dd80199 100644 --- a/files/zh-cn/web/http/status/301/index.html +++ b/files/zh-cn/web/http/status/301/index.html @@ -40,5 +40,5 @@

    更多信息可见

    • {{HTTPStatus("308")}}   永久重定向
    • -
    • {{HTTPStatus("302")}} 找到, 暂时性转移
    • +
    • {{HTTPStatus("302")}} 找到,暂时性转移
    diff --git a/files/zh-cn/web/http/status/400/index.html b/files/zh-cn/web/http/status/400/index.html index 4e4c9fed215bd5..ed973b164d6e61 100644 --- a/files/zh-cn/web/http/status/400/index.html +++ b/files/zh-cn/web/http/status/400/index.html @@ -8,7 +8,7 @@ ---
    {{HTTPSidebar}}
    -

    HTTP 400 Bad Request 响应状态码表示由于语法无效,服务器无法理解该请求。 客户端不应该在未经修改的情况下重复此请求。

    +

    HTTP 400 Bad Request 响应状态码表示由于语法无效,服务器无法理解该请求。客户端不应该在未经修改的情况下重复此请求。

    状态

    diff --git a/files/zh-cn/web/http/status/401/index.html b/files/zh-cn/web/http/status/401/index.html index 6c3ee2304f7603..cabd126de4533a 100644 --- a/files/zh-cn/web/http/status/401/index.html +++ b/files/zh-cn/web/http/status/401/index.html @@ -14,7 +14,7 @@

    这个状态码会与   {{HTTPHeader("WWW-Authenticate")}} 首部一起发送,其中包含有如何进行验证的信息。

    -

    这个状态类似于 {{HTTPStatus("403")}}, 但是在该情况下,依然可以进行身份验证。

    +

    这个状态类似于 {{HTTPStatus("403")}},但是在该情况下,依然可以进行身份验证。

    状态

    diff --git a/files/zh-cn/web/http/status/402/index.html b/files/zh-cn/web/http/status/402/index.html index e72d070b75b38e..f062cc3a5f38aa 100644 --- a/files/zh-cn/web/http/status/402/index.html +++ b/files/zh-cn/web/http/status/402/index.html @@ -12,7 +12,7 @@

    402 Payment Required 是一个被保留使用的非标准客户端错误状态响应码。

    -

    有时, 这个状态码表明直到客户端付费之后请求才会被处理。402 状态码被创建最初目的是用于数字现金或微型支付系统, 表明客户端请求的内容只有付费之后才能获取。目前还不存在标准的使用约定, 不同的实体可以在不同的环境下使用。

    +

    有时,这个状态码表明直到客户端付费之后请求才会被处理。402 状态码被创建最初目的是用于数字现金或微型支付系统,表明客户端请求的内容只有付费之后才能获取。目前还不存在标准的使用约定,不同的实体可以在不同的环境下使用。

    状态

    diff --git a/files/zh-cn/web/http/status/404/index.html b/files/zh-cn/web/http/status/404/index.html index 60c057a1123dd6..609a2e64fd08aa 100644 --- a/files/zh-cn/web/http/status/404/index.html +++ b/files/zh-cn/web/http/status/404/index.html @@ -9,7 +9,7 @@

    状态码 404 Not Found 代表客户端错误,指的是服务器端无法找到所请求的资源。返回该响应的链接通常称为坏链(broken link)或死链(dead link),它们会导向链接出错处理 (link rot) 页面。

    -

    404 状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回 {{HTTPStatus(410)}} (Gone) 而不是 404 。

    +

    404 状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回 {{HTTPStatus(410)}} (Gone) 而不是 404。

    状态

    diff --git a/files/zh-cn/web/http/status/index.md b/files/zh-cn/web/http/status/index.md index dc0fa33c3f0c98..b0dfcfd2003203 100644 --- a/files/zh-cn/web/http/status/index.md +++ b/files/zh-cn/web/http/status/index.md @@ -30,7 +30,7 @@ HTTP 响应状态码用来表明特定 [HTTP](/zh-CN/docs/Web/HTTP) 请求是否 - {{HTTPStatus(100, "100 Continue")}} - : 这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。 - {{HTTPStatus(101, "101 Switching Protocols")}} - - : 该代码是响应客户端的 {{HTTPHeader("Upgrade")}} 请求头发送的, 指明服务器即将切换的协议。 + - : 该代码是响应客户端的 {{HTTPHeader("Upgrade")}} 请求头发送的,指明服务器即将切换的协议。 - {{HTTPStatus(102, "102 Processing")}} ({{Glossary("WebDAV")}}) - : 此代码表示服务器已收到并正在处理该请求,但当前没有响应可用。 - {{HTTPStatus(103, "103 Early Hints")}} @@ -85,7 +85,7 @@ HTTP 响应状态码用来表明特定 [HTTP](/zh-CN/docs/Web/HTTP) 请求是否 - {{HTTPStatus(307, "307 Temporary Redirect")}} - : 服务器发送此响应,以指示客户端使用在前一个请求中使用的相同方法在另一个 URI 上获取所请求的资源。这与 `302 Found` HTTP 响应代码具有相同的语义,但用户代理 _不能_ 更改所使用的 HTTP 方法:如果在第一个请求中使用了 `POST`,则在第二个请求中必须使用 `POST` - {{HTTPStatus(308, "308 Permanent Redirect")}} - - : 这意味着资源现在永久位于由`Location:` HTTP Response 标头指定的另一个 URI。 这与 `301 Moved Permanently` HTTP 响应代码具有相同的语义,但用户代理不能更改所使用的 HTTP 方法:如果在第一个请求中使用 `POST`,则必须在第二个请求中使用 `POST`。 + - : 这意味着资源现在永久位于由`Location:` HTTP Response 标头指定的另一个 URI。这与 `301 Moved Permanently` HTTP 响应代码具有相同的语义,但用户代理不能更改所使用的 HTTP 方法:如果在第一个请求中使用 `POST`,则必须在第二个请求中使用 `POST`。 ## 客户端错误响应 @@ -102,7 +102,7 @@ HTTP 响应状态码用来表明特定 [HTTP](/zh-CN/docs/Web/HTTP) 请求是否 - {{HTTPStatus(405, "405 Method Not Allowed")}} - : 服务器知道请求方法,但目标资源不支持该方法。例如,API 可能不允许调用`DELETE`来删除资源。 - {{HTTPStatus(406, "406 Not Acceptable")}} - - : 当 web 服务器在执行 服务端驱动型内容协商机制](/zh-CN/docs/Web/HTTP/Content_negotiation#服务端驱动型内容协商机制)后,没有发现任何符合用户代理给定标准的内容时,就会发送此响应。 + - : 当 web 服务器在执行 服务端驱动型内容协商机制](/zh-CN/docs/Web/HTTP/Content_negotiation#服务端驱动型内容协商机制) 后,没有发现任何符合用户代理给定标准的内容时,就会发送此响应。 - {{HTTPStatus(407, "407 Proxy Authentication Required")}} - : 类似于 `401 Unauthorized` 但是认证需要由代理完成。 - {{HTTPStatus(408, "408 Request Timeout")}} diff --git a/files/zh-cn/web/javascript/a_re-introduction_to_javascript/index.html b/files/zh-cn/web/javascript/a_re-introduction_to_javascript/index.html index e7b7f7dd4e2061..06524c2913551b 100644 --- a/files/zh-cn/web/javascript/a_re-introduction_to_javascript/index.html +++ b/files/zh-cn/web/javascript/a_re-introduction_to_javascript/index.html @@ -11,14 +11,14 @@ ---
    {{jsSidebar}}
    -

    为什么会有这一篇“重新介绍”呢?因为 {{Glossary("JavaScript")}} 堪称世界上被人误解最深的编程语言。虽然常被嘲为“玩具语言”,但在它看似简洁的外衣下,还隐藏着强大的语言特性。 JavaScript 目前广泛应用于众多知名应用中,对于网页和移动开发者来说,深入理解 JavaScript 就尤为必要。

    +

    为什么会有这一篇“重新介绍”呢?因为 {{Glossary("JavaScript")}} 堪称世界上被人误解最深的编程语言。虽然常被嘲为“玩具语言”,但在它看似简洁的外衣下,还隐藏着强大的语言特性。JavaScript 目前广泛应用于众多知名应用中,对于网页和移动开发者来说,深入理解 JavaScript 就尤为必要。

    我们有必要先从这门语言的历史谈起。在 1995 年 Netscape 一位名为 Brendan Eich 的工程师创造了 JavaScript,随后在 1996 年初,JavaScript 首先被应用于 Netscape 2 浏览器上。最初的 JavaScript 名为 LiveScript,但是因为一个糟糕的营销策略而被重新命名,该策略企图利用 Sun Microsystem 的 Java 语言的流行性,将它的名字从最初的 LiveScript 更改为 JavaScript——尽管两者之间并没有什么共同点。这便是之后混淆产生的根源。

    几个月后,Microsoft 随 IE 3 发布推出了一个与之基本兼容的语言 JScript。又过了几个月,Netscape 将 JavaScript 提交至 Ecma International(一个欧洲标准化组织), {{Glossary("ECMAScript")}} 标准第一版便在 1997 年诞生了,随后在 1999 年以 ECMAScript 第三版的形式进行了更新,从那之后这个标准没有发生过大的改动。由于委员会在语言特性的讨论上发生分歧,ECMAScript 第四版尚未推出便被废除,但随后于 2009 年 12 月发布的 ECMAScript 第五版引入了第四版草案加入的许多特性。第六版标准已经于 2015 年 6 月发布。

    -

    备注: 由于这种用法更常见,从这里开始,我们将使用 JavaScript 来指代 ECMAScript 。

    +

    备注: 由于这种用法更常见,从这里开始,我们将使用 JavaScript 来指代 ECMAScript。

    与大多数编程语言不同,JavaScript 没有输入或输出的概念。它是一个在宿主环境(host environment)下运行的脚本语言,任何与外界沟通的机制都是由宿主环境提供的。浏览器是最常见的宿主环境,但在非常多的其他程序中也包含 JavaScript 解释器,如 Adobe Acrobat、Adobe Photoshop、SVG 图像、Yahoo!的 Widget 引擎,Node.js 之类的服务器端环境,NoSQL 数据库(如开源的 Apache CouchDB)、嵌入式计算机,以及包括 GNOME (注:GNU/Linux 上最流行的 GUI 之一)在内的桌面环境等等。

    @@ -129,7 +129,7 @@

    数字

    -1 / 0; // -Infinity
    -

    可以使用内置函数 isFinite() 来判断一个变量是否是一个有穷数, 如果类型为Infinity, -InfinityNaN 则返回 false

    +

    可以使用内置函数 isFinite() 来判断一个变量是否是一个有穷数,如果类型为Infinity, -InfinityNaN 则返回 false

    isFinite(1/0); // false
     isFinite(Infinity); // false
    @@ -144,7 +144,7 @@ 

    数字

    Number.isFinite("0"); // false
    -

    备注: {{jsxref("Global_Objects/parseInt", "parseInt()")}} 和 {{jsxref("Global_Objects/parseFloat", "parseFloat()")}} 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符组成的数字。但是运算符 "+"对字符串的转换方式与之不同, 只要字符串含有无法被解析成数字的字符,该字符串就将被转换成 NaN。可分别使用这两种方法解析“10.2abc”这一字符串,并比较得到的结果,来理解这两种方法的区别。

    +

    备注: {{jsxref("Global_Objects/parseInt", "parseInt()")}} 和 {{jsxref("Global_Objects/parseFloat", "parseFloat()")}} 函数会尝试逐个解析字符串中的字符,直到遇上一个无法被解析成数字的字符,然后返回该字符前所有数字字符组成的数字。但是运算符 "+"对字符串的转换方式与之不同,只要字符串含有无法被解析成数字的字符,该字符串就将被转换成 NaN。可分别使用这两种方法解析“10.2abc”这一字符串,并比较得到的结果,来理解这两种方法的区别。

    字符串

    @@ -504,7 +504,7 @@

    数组

    } -

    遍历数组的另一种方法是使用 for...in 循环, 然而这并不是遍历数组元素而是数组的索引。注意,如果哪个家伙直接向 Array.prototype 添加了新的属性,使用这样的循环这些属性也同样会被遍历。所以并不推荐使用这种方法遍历数组:

    +

    遍历数组的另一种方法是使用 for...in 循环,然而这并不是遍历数组元素而是数组的索引。注意,如果哪个家伙直接向 Array.prototype 添加了新的属性,使用这样的循环这些属性也同样会被遍历。所以并不推荐使用这种方法遍历数组:

    for (var i in a) {
       // 操作 a[i]
    diff --git a/files/zh-cn/web/javascript/closures/index.html b/files/zh-cn/web/javascript/closures/index.html
    index a5efc413017483..290c9908cda608 100644
    --- a/files/zh-cn/web/javascript/closures/index.html
    +++ b/files/zh-cn/web/javascript/closures/index.html
    @@ -33,7 +33,7 @@ 

    词法作用域

    闭包

    -

    现在来考虑以下例子 :

    +

    现在来考虑以下例子:

    function makeFunc() {
         var name = "Mozilla";
    diff --git a/files/zh-cn/web/javascript/data_structures/index.md b/files/zh-cn/web/javascript/data_structures/index.md
    index db5c9f2bcf753e..f4a937a488865b 100644
    --- a/files/zh-cn/web/javascript/data_structures/index.md
    +++ b/files/zh-cn/web/javascript/data_structures/index.md
    @@ -270,7 +270,7 @@ JavaScript 的字符串类型用于表示文本数据。它是一组 16 位的
     
     ### 带键的集合:Maps, Sets, WeakMaps, WeakSets
     
    -这些数据结构把对象的引用当作键,其在 ECMAScript 第 6 版中有介绍。当 {{jsxref("Map")}} 和 {{jsxref("WeakMap")}} 把一个值和对象关联起来的时候,{{jsxref("Set")}} 和 {{jsxref("WeakSet")}} 表示一组对象。 Map 和 WeakMaps 之间的差别在于,在前者中,对象键是可枚举的。这允许垃圾收集器优化后面的枚举(This allows garbage collection optimizations in the latter case)。
    +这些数据结构把对象的引用当作键,其在 ECMAScript 第 6 版中有介绍。当 {{jsxref("Map")}} 和 {{jsxref("WeakMap")}} 把一个值和对象关联起来的时候,{{jsxref("Set")}} 和 {{jsxref("WeakSet")}} 表示一组对象。Map 和 WeakMaps 之间的差别在于,在前者中,对象键是可枚举的。这允许垃圾收集器优化后面的枚举(This allows garbage collection optimizations in the latter case)。
     
     在纯 ECMAScript 5 下可以实现 `Maps` 和 `Sets`。然而,因为对象并不能进行比较(就对象“小于”示例来讲),所以查询必定是线性的。它们的原生实现(包括 `WeakMap`)所需要的查询时间则是相对恒定的(呈对数增长)。
     
    diff --git a/files/zh-cn/web/javascript/enumerability_and_ownership_of_properties/index.html b/files/zh-cn/web/javascript/enumerability_and_ownership_of_properties/index.html
    index d5cf6c4b98e62a..ce7ace5bde3e85 100644
    --- a/files/zh-cn/web/javascript/enumerability_and_ownership_of_properties/index.html
    +++ b/files/zh-cn/web/javascript/enumerability_and_ownership_of_properties/index.html
    @@ -9,7 +9,7 @@
     ---
     
    {{JsSidebar("More")}}
    -

    可枚举属性是指那些内部 “可枚举” 标志设置为 true 的属性,对于通过直接的赋值和属性初始化的属性,该标识值默认为即为 true,对于通过 Object.defineProperty 等定义的属性,该标识值默认为 false。可枚举的属性可以通过 for...in 循环进行遍历(除非该属性名是一个 Symbol)。属性的所有权是通过判断该属性是否直接属于某个对象决定的,而不是通过原型链继承的。一个对象的所有的属性可以一次性的获取到。有一些内置的方法可以用于判断、迭代/枚举以及获取对象的一个或一组属性,下表对这些方法进行了列举。对于部分不可用的类别,下方的示例代码对获取方法进行了演示。

    +

    可枚举属性是指那些内部“可枚举”标志设置为 true 的属性,对于通过直接的赋值和属性初始化的属性,该标识值默认为即为 true,对于通过 Object.defineProperty 等定义的属性,该标识值默认为 false。可枚举的属性可以通过 for...in 循环进行遍历(除非该属性名是一个 Symbol)。属性的所有权是通过判断该属性是否直接属于某个对象决定的,而不是通过原型链继承的。一个对象的所有的属性可以一次性的获取到。有一些内置的方法可以用于判断、迭代/枚举以及获取对象的一个或一组属性,下表对这些方法进行了列举。对于部分不可用的类别,下方的示例代码对获取方法进行了演示。

    diff --git a/files/zh-cn/web/javascript/equality_comparisons_and_sameness/index.html b/files/zh-cn/web/javascript/equality_comparisons_and_sameness/index.html index 3686da3e7f1abd..5c820a11e2004b 100644 --- a/files/zh-cn/web/javascript/equality_comparisons_and_sameness/index.html +++ b/files/zh-cn/web/javascript/equality_comparisons_and_sameness/index.html @@ -32,7 +32,7 @@

    选择使用哪个操作取决于你需要什么样的比较。

    -

    简而言之,在比较两件事情时,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同,只是总会返回 false );  而 Object.is 的行为方式与三等号相同,但是对于 NaN 和-0 和 +0 进行特殊处理,所以最后两个不相同,而 Object.is(NaN,NaN)将为 true。(通常使用双等号或三等号将 NaN 与 NaN 进行比较,结果为 false,因为 IEEE 754 如是说.) 请注意,所有这些之间的区别都与其处理原语有关; 这三个运算符的原语中,没有一个会比较两个变量是否结构上概念类似。对于任意两个不同的非原始对象,即便他们有相同的结构, 以上三个运算符都会计算得到 false 。

    +

    简而言之,在比较两件事情时,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同,只是总会返回 false );  而 Object.is 的行为方式与三等号相同,但是对于 NaN 和 -0 和 +0 进行特殊处理,所以最后两个不相同,而 Object.is(NaN,NaN)将为 true。(通常使用双等号或三等号将 NaN 与 NaN 进行比较,结果为 false,因为 IEEE 754 如是说.) 请注意,所有这些之间的区别都与其处理原语有关; 这三个运算符的原语中,没有一个会比较两个变量是否结构上概念类似。对于任意两个不同的非原始对象,即便他们有相同的结构,以上三个运算符都会计算得到 false。

    严格相等 ===

    @@ -180,7 +180,7 @@

    同值相等

    } -

    Object.defineProperty 在试图修改不可变属性时,如果这个属性确实被修改了则会抛出异常,反之什么都不会发生。例如如果 v 是 -0 ,那么没有发生任何变化,所以也不会抛出任何异常。但如果 v 是 +0 ,则会抛出异常。不可变属性和新设定的值使用 same-value 相等比较。

    +

    Object.defineProperty 在试图修改不可变属性时,如果这个属性确实被修改了则会抛出异常,反之什么都不会发生。例如如果 v 是 -0,那么没有发生任何变化,所以也不会抛出任何异常。但如果 v 是 +0,则会抛出异常。不可变属性和新设定的值使用 same-value 相等比较。

    同值相等由 Object.is 方法提供。

    @@ -380,12 +380,12 @@

    什么时候使用 NaN的方式,Object.is唯一让人感兴趣的,是当你需要一些元编程方案时,它对待 0 的特殊方式,特别是关于属性描述器,即你的工作需要去镜像Object.defineProperty的一些特性时。如果你的工作不需要这些,那你应该避免使用Object.is,使用===来代替。即使你需要比较两个NaN使其结果为true,总的来说编写使用NaN 检查的特例函数 (用旧版本 ECMAScript 的isNaN 方法) 也会比想出一些计算方法让Object.is不影响不同符号的 0 的比较更容易些。

    -

    这里是一个会区别对待-0 和 +0 的内置方法和操作符不完全列表:

    +

    这里是一个会区别对待 -0 和 +0 的内置方法和操作符不完全列表:

    - (一元负)
    -

    显而易见,对0 一元负操作得到-0。但表达式的抽象化可能在你没有意识到得情况下导致-0 延续传播。例如当考虑下例时:

    +

    显而易见,对0 一元负操作得到-0。但表达式的抽象化可能在你没有意识到得情况下导致 -0 延续传播。例如当考虑下例时:

    let stoppingForce = obj.mass * -obj.velocity
    @@ -397,7 +397,7 @@

    什么时候使用 Math.pow, Math.round -
    即使传入的参数中没有-0,这些方法的返回值都有可能是-0。例如当用 Math.pow计算-Infinity的任何负奇指数的幂都会得到-0。详情请参见这些方法各自的文档。
    +
    即使传入的参数中没有 -0,这些方法的返回值都有可能是 -0。例如当用 Math.pow计算-Infinity的任何负奇指数的幂都会得到-0。详情请参见这些方法各自的文档。
    Math.floor, Math.max, @@ -406,7 +406,7 @@

    什么时候使用 Math.sqrt, Math.tan

    -
    当传入参数中有-0 时,这些方法也可能返回-0。例如, Math.min(-0, +0) 得出 -0。详情请参见这些方法各自的文档。
    +
    当传入参数中有 -0 时,这些方法也可能返回 -0。例如, Math.min(-0, +0) 得出 -0。详情请参见这些方法各自的文档。
    ~, <<, diff --git a/files/zh-cn/web/javascript/eventloop/index.html b/files/zh-cn/web/javascript/eventloop/index.html index 9d42cb2c0ebb51..69d0c1a590264a 100644 --- a/files/zh-cn/web/javascript/eventloop/index.html +++ b/files/zh-cn/web/javascript/eventloop/index.html @@ -39,7 +39,7 @@

    console.log(bar(7)); // 返回 42 -

    当调用 bar 时,第一个帧被创建并压入栈中,帧中包含了 bar 的参数和局部变量。 当 bar 调用 foo 时,第二个帧被创建并被压入栈中,放在第一个帧之上,帧中包含 foo 的参数和局部变量。当 foo 执行完毕然后返回时,第二个帧就被弹出栈(剩下 bar 函数的调用帧 )。当 bar 也执行完毕然后返回时,第一个帧也被弹出,栈就被清空了。

    +

    当调用 bar 时,第一个帧被创建并压入栈中,帧中包含了 bar 的参数和局部变量。当 bar 调用 foo 时,第二个帧被创建并被压入栈中,放在第一个帧之上,帧中包含 foo 的参数和局部变量。当 foo 执行完毕然后返回时,第二个帧就被弹出栈(剩下 bar 函数的调用帧)。当 bar 也执行完毕然后返回时,第一个帧也被弹出,栈就被清空了。

    @@ -130,7 +130,7 @@

    多个运行时互相通信

    永不阻塞

    -

    JavaScript 的事件循环模型与许多其他语言不同的一个非常有趣的特性是,它永不阻塞。 处理 I/O 通常通过事件和回调来执行,所以当一个应用正等待一个 IndexedDB 查询返回或者一个 XHR 请求返回时,它仍然可以处理其它事情,比如用户输入。

    +

    JavaScript 的事件循环模型与许多其他语言不同的一个非常有趣的特性是,它永不阻塞。处理 I/O 通常通过事件和回调来执行,所以当一个应用正等待一个 IndexedDB 查询返回或者一个 XHR 请求返回时,它仍然可以处理其它事情,比如用户输入。

    由于历史原因有一些例外,如 alert 或者同步 XHR,但应该尽量避免使用它们。注意,例外的例外也是存在的(但通常是实现错误而非其它原因)。

    diff --git a/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html b/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html index e4a4fa0f97de81..d1783a6d939732 100644 --- a/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html +++ b/files/zh-cn/web/javascript/guide/control_flow_and_error_handling/index.html @@ -50,7 +50,7 @@

    示例

    这段代码的输出是2,这是因为块级作用域中的 var x 变量声明与之前的声明在同一个作用域内。在 C 语言或是 Java 语言中,同样的代码输出的结果是 1。

    -

    从 ECMAScript 2015 开始,使用 let 和const变量是块作用域的。 更多信息请参考 {{jsxref("Statements/let", "let")}} 和 {{jsxref("Statements/const", "const")}}。

    +

    从 ECMAScript 2015 开始,使用 let 和const变量是块作用域的。更多信息请参考 {{jsxref("Statements/let", "let")}} 和 {{jsxref("Statements/const", "const")}}。

    条件判断语句

    @@ -127,7 +127,7 @@

    错误的值

  • 空字符串(""
  • -

    当传递给条件语句所有其他的值,包括所有对象会被计算为真 。

    +

    当传递给条件语句所有其他的值,包括所有对象会被计算为真。

    请不要混淆原始的布尔值truefalse 与 {{jsxref("Boolean")}}对象的真和假。例如:

    @@ -255,7 +255,7 @@

    try...catch 语句

    try...catch 语句标记一块待尝试的语句,并规定一个以上的响应应该有一个异常被抛出。如果我们抛出一个异常,try...catch语句就捕获它。

    -

    try...catch 语句有一个包含一条或者多条语句的 try 代码块,0 个或 1 个的catch代码块,catch 代码块中的语句会在 try 代码块中抛出异常时执行。 换句话说,如果你在 try 代码块中的代码如果没有执行成功,那么你希望将执行流程转入 catch 代码块。如果 try 代码块中的语句(或者try 代码块中调用的方法)一旦抛出了异常,那么执行流程会立即进入catch 代码块。如果 try 代码块没有抛出异常,catch 代码块就会被跳过。finally 代码块总会紧跟在 try 和 catch 代码块之后执行,但会在 try 和 catch 代码块之后的其他代码之前执行。

    +

    try...catch 语句有一个包含一条或者多条语句的 try 代码块,0 个或 1 个的catch代码块,catch 代码块中的语句会在 try 代码块中抛出异常时执行。换句话说,如果你在 try 代码块中的代码如果没有执行成功,那么你希望将执行流程转入 catch 代码块。如果 try 代码块中的语句(或者try 代码块中调用的方法)一旦抛出了异常,那么执行流程会立即进入catch 代码块。如果 try 代码块没有抛出异常,catch 代码块就会被跳过。finally 代码块总会紧跟在 try 和 catch 代码块之后执行,但会在 try 和 catch 代码块之后的其他代码之前执行。

    下面的例子使用了try...catch语句。示例调用了一个函数用于从一个数组中根据传递值来获取一个月份名称。如果该值与月份数值不相符,会抛出一个带有"InvalidMonthNo"值的异常,然后在捕捉块语句中设monthName变量为unknown

    diff --git a/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html b/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html index 9926984acef377..b168e0e31c3237 100644 --- a/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html +++ b/files/zh-cn/web/javascript/guide/details_of_the_object_model/index.html @@ -227,7 +227,7 @@

    创建层级结构

    使用这些定义,您可以创建这些对象的实例,以获取其属性的默认值。下图说明了如何使用这些 JavaScript 定义创建新对象并显示新对象的属性值。

    -

    备注:实例在基于类的语言中具有特定的技术含义。在这些语言中,一个实例是一个类的单独实例化,与一个类本质上是不同的。在 JavaScript 中,“实例”没有这个技术含义,因为 JavaScript 在类和实例之间不存在这样的区别。然而,在讨论 JavaScript 时,可以非正式地使用“实例”来表示使用特定构造函数创建的对象。 所以,在这个例子中,你可以非正式地说janeEngineer的一个实例。同样,虽然术语 parent,child,ancestor 和 descendant 在 JavaScript 中没有正式含义;你可以非正式地使用它们来引用原型链中较高或更低的对象。

    +

    备注:实例在基于类的语言中具有特定的技术含义。在这些语言中,一个实例是一个类的单独实例化,与一个类本质上是不同的。在 JavaScript 中,“实例”没有这个技术含义,因为 JavaScript 在类和实例之间不存在这样的区别。然而,在讨论 JavaScript 时,可以非正式地使用“实例”来表示使用特定构造函数创建的对象。所以,在这个例子中,你可以非正式地说janeEngineer的一个实例。同样,虽然术语 parent,child,ancestor 和 descendant 在 JavaScript 中没有正式含义;你可以非正式地使用它们来引用原型链中较高或更低的对象。

    用简单的定义创建对象

    @@ -286,7 +286,7 @@

    继承属性

    mark.projects = []; -

    mark 对象从 mark.__proto__ 中保存的原型对象里继承了 namedept 属性。并由 WorkerBee 构造函数为 projects 属性设置了本地值。 这就是 JavaScript 中的属性和属性值的继承。这个过程的一些微妙之处将在 Property inheritance revisited 中进一步讨论。

    +

    mark 对象从 mark.__proto__ 中保存的原型对象里继承了 namedept 属性。并由 WorkerBee 构造函数为 projects 属性设置了本地值。这就是 JavaScript 中的属性和属性值的继承。这个过程的一些微妙之处将在 Property inheritance revisited 中进一步讨论。

    由于这些构造器不支持为实例设置特定的值,所以这些属性值仅仅是创建自 WorkerBee 的所有对象所共享的默认值。当然这些属性的值是可以修改的,所以您可以为 mark指定特定的信息,如下所示:

    diff --git a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html index a3cd4894aba997..61aa749966b293 100644 --- a/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html +++ b/files/zh-cn/web/javascript/guide/expressions_and_operators/index.html @@ -31,7 +31,7 @@

    运算符

  • {{ web.link("#关系操作符", "关系运算符 (Relational operator)")}}
  • -

    JavaScript 拥有二元和一元运算符, 和一个特殊的三元运算符(条件运算符)。一个二元运算符需要两个操作数,分别在运算符的前面和后面:

    +

    JavaScript 拥有二元和一元运算符,和一个特殊的三元运算符(条件运算符)。一个二元运算符需要两个操作数,分别在运算符的前面和后面:

    操作数 1 运算符 操作数 2
     
    @@ -148,7 +148,7 @@

    解构

    比较运算符

    -

    比较运算符比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。字符串比较是基于标准的字典顺序,使用 Unicode 值。在多数情况下,如果两个操作数不是相同的类型, JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用 ===!== 操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。下面的表格描述了该示例代码中的各比较运算符

    +

    比较运算符比较它的操作数并返回一个基于表达式是否为真的逻辑值。操作数可以是数字,字符串,逻辑,对象值。字符串比较是基于标准的字典顺序,使用 Unicode 值。在多数情况下,如果两个操作数不是相同的类型,JavaScript 会尝试转换它们为恰当的类型来比较。这种行为通常发生在数字作为操作数的比较。类型转换的例外是使用 ===!== 操作符,它们会执行严格的相等和不相等比较。这些运算符不会在检查相等之前转换操作数的类型。下面的表格描述了该示例代码中的各比较运算符

    var var1 = 3;
     var var2 = 4;
    @@ -180,7 +180,7 @@

    比较运算符

    - + @@ -217,7 +217,7 @@

    比较运算符

    全等 Strict equal (===)两边操作数相等且类型相同时返回 true。 参见 {{jsxref("Object.is")}} and sameness in JS.两边操作数相等且类型相同时返回 true。参见 {{jsxref("Object.is")}} and sameness in JS. 3 === var1
    -

    备注:=>)不是运算符,而是箭头函数的标记符号 。

    +

    备注:=>)不是运算符,而是箭头函数的标记符号。

    算术运算符

    @@ -247,7 +247,7 @@

    算术运算符

    自增 (++) - 一元运算符。将操作数的值加一. 如果放在操作数前面 (++x), 则返回加一后的值; 如果放在操作数后面 (x++), 则返回操作数原值,然后再将操作数加一。 + 一元运算符。将操作数的值加一。如果放在操作数前面 (++x), 则返回加一后的值; 如果放在操作数后面 (x++), 则返回操作数原值,然后再将操作数加一。

    var x=3;

    @@ -264,7 +264,7 @@

    算术运算符

    自减 (--) - 一元运算符。将操作数的值减一. 前后缀两种用法的返回值类似自增运算符。 + 一元运算符。将操作数的值减一。前后缀两种用法的返回值类似自增运算符。

    var x=3; console.log(--x); //输入 2,x=2

    @@ -275,7 +275,7 @@

    算术运算符

    一元负值符 (-) 一元运算符,返回操作数的负值。 -

    var x=3; console.log(-x); //输入-3

    +

    var x=3; console.log(-x); //输入 -3

    @@ -324,13 +324,13 @@

    位运算符

    按位与 AND a & b -

    在 a,b 的位表示中,每一个对应的位都为 1 则返回 1, 否则返回 0.

    +

    在 a,b 的位表示中,每一个对应的位都为 1 则返回 1,否则返回 0.

    按位或 OR a | b - 在 a,b 的位表示中,每一个对应的位,只要有一个为 1 则返回 1, 否则返回 0. + 在 a,b 的位表示中,每一个对应的位,只要有一个为 1 则返回 1,否则返回 0. 按位异或 XOR @@ -450,7 +450,7 @@

    移位运算符

    <<
    (左移位) - 将第一个操作数向左移动指定数量的位。左边移出位被抛弃. 左边移出的几位被丢弃。右边多出的空位由 0 补齐 + 将第一个操作数向左移动指定数量的位。左边移出位被抛弃。左边移出的几位被丢弃。右边多出的空位由 0 补齐 9<<2 产生 36,因为 1001 移位 2 比特向左变为 100100,它是 36。 @@ -470,7 +470,7 @@

    移位运算符

    逻辑运算符

    -

    逻辑运算符常用于布尔(逻辑)值之间; 当操作数都是布尔值时,返回值也是布尔值。 不过实际上&&||返回的是一个特定的操作数的值,所以当它用于非布尔值的时候,返回值就可能是非布尔值。 逻辑运算符的描述如下。

    +

    逻辑运算符常用于布尔(逻辑)值之间; 当操作数都是布尔值时,返回值也是布尔值。不过实际上&&||返回的是一个特定的操作数的值,所以当它用于非布尔值的时候,返回值就可能是非布尔值。逻辑运算符的描述如下。

    逻辑运算符

    @@ -601,9 +601,9 @@

    delete

    objectName是一个对象名,property 是一个已经存在的属性,index是数组中的一个已经存在的键值的索引值。

    -

    第三行的形式只在with声明的状态下是合法的, 从对象中删除一个属性。

    +

    第三行的形式只在with声明的状态下是合法的,从对象中删除一个属性。

    -

    你能使用 delete 删除各种各样的隐式声明, 但是被var声明的除外。

    +

    你能使用 delete 删除各种各样的隐式声明,但是被var声明的除外。

    如果 delete 操作成功,属性或者元素会变成 undefined。如果 delete可行会返回true,如果不成功返回false

    @@ -879,7 +879,7 @@

    表达式

  • 算数:得出一个数字,例如 3.14159. (通常使用 {{ web.link("#Arithmetic_operators", "arithmetic operators") }}.)
  • 字符串:得出一个字符串,例如,"Fred" 或 "234". (通常使用 {{ web.link("#String_operators", "string operators") }}.)
  • 逻辑值:得出 true 或者 false. (经常涉及到 {{ web.link("#Logical_operators", "logical operators") }}.)
  • -
  • 基本表达式: javascript 中基本的关键字和一般表达式。
  • +
  • 基本表达式:javascript 中基本的关键字和一般表达式。
  • 左值表达式:分配给左值。
  • @@ -965,7 +965,7 @@

    new

    扩展语句

    -

    扩展语句符允许一个表达式在原地展开, 当需要多个参数 (比如函数调用时) 或者多个值 (比如字面量数组) 。

    +

    扩展语句符允许一个表达式在原地展开,当需要多个参数 (比如函数调用时) 或者多个值 (比如字面量数组) 。

    例如:现在你有一个数组,你想创建一个新数组,并将刚才那个作为它的一部分,用 array 的字面语法是不够的,你不得不写一些代码实现它,比如用些pushspliceconcat 等等。但是用spread syntax 就没问题了:

    diff --git a/files/zh-cn/web/javascript/guide/functions/index.html b/files/zh-cn/web/javascript/guide/functions/index.html index 3536e44abec47f..859d8c8c3fb7d6 100644 --- a/files/zh-cn/web/javascript/guide/functions/index.html +++ b/files/zh-cn/web/javascript/guide/functions/index.html @@ -10,7 +10,7 @@ ---

    {{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Loops_and_iteration", "Web/JavaScript/Guide/Expressions_and_Operators")}}

    -

    函数是 JavaScript 中的基本组件之一。 一个函数是 JavaScript 过程 — 一组执行任务或计算值的语句。要使用一个函数,你必须将其定义在你希望调用它的作用域内。

    +

    函数是 JavaScript 中的基本组件之一。一个函数是 JavaScript 过程 — 一组执行任务或计算值的语句。要使用一个函数,你必须将其定义在你希望调用它的作用域内。

    一个 JavaScript 函数用function关键字定义,后面跟着函数名和圆括号。

    diff --git a/files/zh-cn/web/javascript/guide/grammar_and_types/index.html b/files/zh-cn/web/javascript/guide/grammar_and_types/index.html index 64daadfb7f525f..a9c31933ae8a4e 100644 --- a/files/zh-cn/web/javascript/guide/grammar_and_types/index.html +++ b/files/zh-cn/web/javascript/guide/grammar_and_types/index.html @@ -35,7 +35,7 @@

    基础

    虽然不是必需的,但是在一条语句的末尾加上分号是一个很好的习惯。这个习惯可以大大减少代码中产生 bug 的可能性。

    -

     Javascript 源码从左往右被扫描并转换成一系列由 token 、控制字符、行终止符、注释和空白字符组成的输入元素。空白字符指的是空格、制表符和换行符等。

    +

     Javascript 源码从左往右被扫描并转换成一系列由 token、控制字符、行终止符、注释和空白字符组成的输入元素。空白字符指的是空格、制表符和换行符等。

    注释

    @@ -110,12 +110,12 @@

    变量求值

    var b; // 在你阅读下面的‘变量声明提升’前你可能会疑惑 -console.log("The value of c is " + c); // 未捕获的引用错误: c 未被定义 +console.log("The value of c is " + c); // 未捕获的引用错误:c 未被定义 let x; console.log("The value of x is " + x); // x 的值是 undefined -console.log("The value of y is " + y);// 未捕获的引用错误: y 未被定义 +console.log("The value of y is " + y);// 未捕获的引用错误:y 未被定义 let y;

    你可以使用 undefined 来判断一个变量是否已赋值。在以下的代码中,变量input未被赋值,因此 if 条件语句的求值结果是 true 。

    @@ -290,8 +290,8 @@

    数据类型

  • 七种基本数据类型:
    • 布尔值(Boolean),有 2 个值分别是:true 和 false.
    • -
    • null , 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 nullNullNULL或变体完全不同。
    • -
    • undefined ,和 null 一样是一个特殊的关键字,undefined 表示变量未赋值时的属性。
    • +
    • null, 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 nullNullNULL或变体完全不同。
    • +
    • undefined,和 null 一样是一个特殊的关键字,undefined 表示变量未赋值时的属性。
    • 数字(Number),整数或浮点数,例如: 42 或者 3.14159
    • 任意精度的整数 (BigInt) ,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。
    • 字符串(String),字符串是一串表示文本值的字符序列,例如:"Howdy" 。
    • @@ -481,7 +481,7 @@

      对象字面量 (Object literals)

      对象字面值是封闭在花括号对 ({}) 中的一个对象的零个或多个"属性名 - 值"对的(元素)列表。

      -

      警告:你不能在一条语句的开头就使用对象字面值,这将导致错误或产生超出预料的行为, 因为此时左花括号({)会被认为是一个语句块的起始符号。(译者:这 里需要对语句 statement、块 block 等基本名词的解释)

      +

      警告:你不能在一条语句的开头就使用对象字面值,这将导致错误或产生超出预料的行为,因为此时左花括号({)会被认为是一个语句块的起始符号。(译者:这 里需要对语句 statement、块 block 等基本名词的解释)

      以下是一个对象字面值的例子。对象car的第一个元素(译注:即一个属性/值对)定义了属性myCar;第二个元素,属性getCar,引用了一个函数调用(即 CarTypes("Honda"));第三个元素,属性special,使用了一个已有的变量(即 Sales)。

      @@ -515,9 +515,9 @@

      对象字面量 (Object literals)

      "": "An empty string", "!": "Bang!" } -console.log(unusualPropertyNames.""); // 语法错误: Unexpected string +console.log(unusualPropertyNames.""); // 语法错误:Unexpected string console.log(unusualPropertyNames[""]); // An empty string -console.log(unusualPropertyNames.!); // 语法错误: Unexpected token ! +console.log(unusualPropertyNames.!); // 语法错误:Unexpected token ! console.log(unusualPropertyNames["!"]); // Bang!
  • 增强的对象字面量 (Enhanced Object literals)

    diff --git a/files/zh-cn/web/javascript/guide/indexed_collections/index.html b/files/zh-cn/web/javascript/guide/indexed_collections/index.html index dd93f9ccba0acf..a019cf0b00d0ab 100644 --- a/files/zh-cn/web/javascript/guide/indexed_collections/index.html +++ b/files/zh-cn/web/javascript/guide/indexed_collections/index.html @@ -21,7 +21,7 @@

    创建数组 (creating an array)

    var arr = Array(element0, element1, ..., elementN); var arr = [element0, element1, ..., elementN]; -// 译者注: var arr=[4] 和 var arr=new Array(4) 是不等效的, +// 译者注:var arr=[4] 和 var arr=new Array(4) 是不等效的, // 后者 4 指数组长度,所以使用字面值 (literal) 的方式应该不仅仅是便捷,同时也不易踩坑

    element0, element1, ..., elementN 是数组元素的值的列表。当这些值被指定后,数组将被初始化,他们将被作为数组元素。数组的 length 属性也会被设为参数的个数。

    @@ -39,7 +39,7 @@

    创建数组 (creating an array)

    -

    备注:以上代码,数组长度(arrayLength)必须为一个数字(Number)。否则,将会创建一个只有单个(所输入的)元素的数组。 调用 arr.length 会返回数组长度,但是数组实际上包含了空的(undefined)元素。 因此在数组上使用 for...in 循环,将不会返回任何的值 。

    +

    备注:以上代码,数组长度(arrayLength)必须为一个数字(Number)。否则,将会创建一个只有单个(所输入的)元素的数组。调用 arr.length 会返回数组长度,但是数组实际上包含了空的(undefined)元素。 因此在数组上使用 for...in 循环,将不会返回任何的值。

    除了如上所示创建新定义的变量,数组 (array) 也可以作为一个属性 (property) 分配给一个新的或者已存在的对象 (object):

    @@ -117,7 +117,7 @@

    引用数组元素 (refer

    理解 length

    -

    在实施层面, JavaScript 实际上是将元素作为标准的对象属性来存储,把数组索引作为属性名。长度属性是特殊的,它总是返回最后一个元素的索引值加 1(下例中, Dusty 的索引是 30,所以 cats.length 返回 30 + 1)。记住, JavaScript 数组索引是基于 0 的:他们从 0 开始,而不是 1。这意味着数组长度属性将比最大的索引值大 1:

    +

    在实施层面,JavaScript 实际上是将元素作为标准的对象属性来存储,把数组索引作为属性名。长度属性是特殊的,它总是返回最后一个元素的索引值加 1(下例中,Dusty 的索引是 30,所以 cats.length 返回 30 + 1)。记住, JavaScript 数组索引是基于 0 的:他们从 0 开始,而不是 1。这意味着数组长度属性将比最大的索引值大 1:

    var cats = [];
     cats[30] = ['Dusty'];
    @@ -276,7 +276,7 @@ 

    数组的方法 (array methods)

    // sorts the array so that myArray = ["Wind","Fire","Rain"]
      -
    • 如果 a 小于 b ,返回 -1(或任何负数)
    • +
    • 如果 a 小于 b,返回 -1(或任何负数)
    • 如果 a 大于 b ,返回 1 (或任何正数)
    • 如果 ab 相等,返回 0。
    @@ -455,7 +455,7 @@

    数组推导式(Array compr

    类型化数组 (Typed Arrays )

    -

    JavaScript typed arrays 是类数组对象(array-like object),其提供访问原始二进制数据的机制。 就像你知道的那样,{{jsxref("Array")}} 对象动态增长和收缩,可以有任何 JavaScript 值。但对于类型化数组,JavaScript 引擎执行优化使得这些数组访问速度快速。 随着 Web 应用程序变得越来越强大,添加音频和视频处理等功能、可以使用 WebSockets 、使用原始数据, 这都需要访问原始的二进制数据,所以专门的优化将有助于 JavaScript 代码能够快速和容易地操纵原始二进制数据类型的数组。

    +

    JavaScript typed arrays 是类数组对象(array-like object),其提供访问原始二进制数据的机制。 就像你知道的那样,{{jsxref("Array")}} 对象动态增长和收缩,可以有任何 JavaScript 值。但对于类型化数组,JavaScript 引擎执行优化使得这些数组访问速度快速。随着 Web 应用程序变得越来越强大,添加音频和视频处理等功能、可以使用 WebSockets 、使用原始数据,这都需要访问原始的二进制数据,所以专门的优化将有助于 JavaScript 代码能够快速和容易地操纵原始二进制数据类型的数组。

    缓冲区和视图:类型化的数组结构

    diff --git a/files/zh-cn/web/javascript/guide/introduction/index.html b/files/zh-cn/web/javascript/guide/introduction/index.html index ff01612849f565..8554106a3e3fa0 100644 --- a/files/zh-cn/web/javascript/guide/introduction/index.html +++ b/files/zh-cn/web/javascript/guide/introduction/index.html @@ -34,7 +34,7 @@

    去哪里获取有关 Jav

    什么是 JavaScript?

    -

    JavaScript 是一门跨平台、面向对象的脚本语言,它能使网页可交互(例如拥有复杂的动画,可点击的按钮,通俗的菜单等)。另外还有高级的服务端 Javascript 版本,例如 Node.js,它可以让你在网页上添加更多功能,不仅仅是下载文件(例如在多台电脑之间的协同合作)。在宿主环境(例如 web 浏览器)中, JavaScript 能够通过其所连接的环境提供的编程接口进行控制。

    +

    JavaScript 是一门跨平台、面向对象的脚本语言,它能使网页可交互(例如拥有复杂的动画,可点击的按钮,通俗的菜单等)。另外还有高级的服务端 Javascript 版本,例如 Node.js,它可以让你在网页上添加更多功能,不仅仅是下载文件(例如在多台电脑之间的协同合作)。在宿主环境(例如 web 浏览器)中,JavaScript 能够通过其所连接的环境提供的编程接口进行控制。

    JavaScript 内置了一些对象的标准库,比如数组(Array),日期(Date),数学(Math)和一套核心语句,包括运算符、流程控制符以及声明方式等。JavaScript 的核心部分可以通过添加对象来扩展语言以适应不同用途;例如:

    @@ -49,7 +49,7 @@

    JavaScript 和 Java

    JavaScript 和 Java 有一些共性但是在另一些方面有着根本性区别。JavaScript 语言类似 Java 但是并没有 Java 的静态类型和强类型检查特性。JavaScript 遵循了 Java 的表达式语法,命名规范以及基础流程控制,这也是 JavaScript 从 LiveScript 更名的原因。

    -

    与 Java 通过声明的方式构建类的编译时系统不同,JavaScript 采用基于少量的数据类型如数字、布尔、字符串值的运行时系统。JavaScript 拥有基于原型的对象模型提供的动态继承;也就是说,独立对象的继承是可以改变的。 JavaScript 支持匿名函数。 函数也可以作为对象的属性被当做宽松的类型方式执行。

    +

    与 Java 通过声明的方式构建类的编译时系统不同,JavaScript 采用基于少量的数据类型如数字、布尔、字符串值的运行时系统。JavaScript 拥有基于原型的对象模型提供的动态继承;也就是说,独立对象的继承是可以改变的。JavaScript 支持匿名函数。函数也可以作为对象的属性被当做宽松的类型方式执行。

    与 Java 相比,Javascript 是一门形式自由的语言。你不必声明所有的变量,类和方法。你不必关心方法是否是公有、私有或者受保护的,也不需要实现接口。无需显式指定变量、参数、方法返回值的数据类型。

    @@ -85,7 +85,7 @@

    JavaScript 和 Java

    JavaScript 和 ECMAScript 规范

    -

    JavaScript 的标准化组织是 ECMA ——这个欧洲信息与通信系统标准化协会提供基于 Javascript 的标准化方案(ECMA 原先是欧洲计算机制造商协会的首字母缩写)。这种标准化版本的 JavaScript 被称作 ECMAScript,在所有支持该标准的应用中以相同的方式工作。公司可以使用开放标准语言来开发他们自己的 JavaScript 实现版本。ECMAScript 标准在 ECMA-262 规范中进行文档化。 参照 JavaScript 的新特性 以便学习更多关于不同版本的 JavaScript 和 ECMAScript 规范版本。

    +

    JavaScript 的标准化组织是 ECMA ——这个欧洲信息与通信系统标准化协会提供基于 Javascript 的标准化方案(ECMA 原先是欧洲计算机制造商协会的首字母缩写)。这种标准化版本的 JavaScript 被称作 ECMAScript,在所有支持该标准的应用中以相同的方式工作。公司可以使用开放标准语言来开发他们自己的 JavaScript 实现版本。ECMAScript 标准在 ECMA-262 规范中进行文档化。参照 JavaScript 的新特性 以便学习更多关于不同版本的 JavaScript 和 ECMAScript 规范版本。

    ECMA-262 标准也通过了 国际标准化组织(ISO)的 ISO-16262。你可以在这里找到该规范文件。 ECMAScript 规范并没有描述文档对象模型(DOM),该模型由 万维网联盟(W3C) 制定。DOM 定义了 HTML 文件对象被脚本操作的方法。为了更清楚地了解当使用 JavaScript 编程时用到的不同技术,请参阅 JavaScript 技术概述

    @@ -109,7 +109,7 @@

    单行模式

    Web 控制台 不仅可以展示当前已加载页面的信息,还包含一个可以在当前页面执行 Javascript 表达式的 命令行。

    -

    在火狐浏览器菜单栏的 “工具" => "浏览器工具" => "Web 开发者工具"( 在 Windows 和 Linux 上Ctrl+Shift+I ,Mac 上Cmd+Option+K),选择"Web 开发者工具栏"的控制台选项卡,它会如期出现在浏览器窗口的底部。如图,最下一行就是可以执行输入的命令行,面板上可以显示执行结果:

    +

    在火狐浏览器菜单栏的“工具" => "浏览器工具" => "Web 开发者工具"( 在 Windows 和 Linux 上Ctrl+Shift+I ,Mac 上Cmd+Option+K),选择"Web 开发者工具栏"的控制台选项卡,它会如期出现在浏览器窗口的底部。如图,最下一行就是可以执行输入的命令行,面板上可以显示执行结果:

    diff --git a/files/zh-cn/web/javascript/guide/iterators_and_generators/index.html b/files/zh-cn/web/javascript/guide/iterators_and_generators/index.html index 2b9ed0ef1a6d2f..d8483377ff7be5 100644 --- a/files/zh-cn/web/javascript/guide/iterators_and_generators/index.html +++ b/files/zh-cn/web/javascript/guide/iterators_and_generators/index.html @@ -27,14 +27,14 @@

    迭代器

    -

    在 JavaScript 中,迭代器是一个对象,它定义一个序列,并在终止时可能返回一个返回值。 更具体地说,迭代器是通过使用 next() 方法实现 Iterator protocol 的任何一个对象,该方法返回具有两个属性的对象: value,这是序列中的 next 值;和 done ,如果已经迭代到序列中的最后一个值,则它为 true 。如果 value 和 done 一起存在,则它是迭代器的返回值。

    +

    在 JavaScript 中,迭代器是一个对象,它定义一个序列,并在终止时可能返回一个返回值。更具体地说,迭代器是通过使用 next() 方法实现 Iterator protocol 的任何一个对象,该方法返回具有两个属性的对象: value,这是序列中的 next 值;和 done ,如果已经迭代到序列中的最后一个值,则它为 true 。如果 value 和 done 一起存在,则它是迭代器的返回值。

    -

    一旦创建,迭代器对象可以通过重复调用 next()显式地迭代。 迭代一个迭代器被称为消耗了这个迭代器,因为它通常只能执行一次。 在产生终止值之后,对 next()的额外调用应该继续返回{done:true}。
    +

    一旦创建,迭代器对象可以通过重复调用 next()显式地迭代。迭代一个迭代器被称为消耗了这个迭代器,因为它通常只能执行一次。在产生终止值之后,对 next()的额外调用应该继续返回{done:true}。

    - Javascript 中最常见的迭代器是 Array 迭代器,它只是按顺序返回关联数组中的每个值。 虽然很容易想象所有迭代器都可以表示为数组,但事实并非如此。 数组必须完整分配,但迭代器仅在必要时使用,因此可以表示无限大小的序列,例如 0 和无穷大之间的整数范围。

    + Javascript 中最常见的迭代器是 Array 迭代器,它只是按顺序返回关联数组中的每个值。虽然很容易想象所有迭代器都可以表示为数组,但事实并非如此。数组必须完整分配,但迭代器仅在必要时使用,因此可以表示无限大小的序列,例如 0 和无穷大之间的整数范围。


    - 这是一个可以做到这一点的例子。 它允许创建一个简单的范围迭代器,它定义了从开始(包括)到结束(独占)间隔步长的整数序列。 它的最终返回值是它创建的序列的大小,由变量 iterationCount 跟踪。

    + 这是一个可以做到这一点的例子。它允许创建一个简单的范围迭代器,它定义了从开始(包括)到结束(独占)间隔步长的整数序列。它的最终返回值是它创建的序列的大小,由变量 iterationCount 跟踪。

    function makeRangeIterator(start = 0, end = Infinity, step = 1) {
         let nextIndex = start;
    @@ -70,16 +70,16 @@ 

    迭代器

    -

    备注:反射性地知道特定对象是否是迭代器是不可能的。 如果您需要这样做,请使用 Iterables.

    +

    备注:反射性地知道特定对象是否是迭代器是不可能的。如果您需要这样做,请使用 Iterables.

    生成器函数

    -

    虽然自定义的迭代器是一个有用的工具,但由于需要显式地维护其内部状态,因此需要谨慎地创建。生成器函数提供了一个强大的选择:它允许你定义一个包含自有迭代算法的函数, 同时它可以自动维护自己的状态。 生成器函数使用 {{jsxref("Statements/function*","function*")}}语法编写。 最初调用时,生成器函数不执行任何代码,而是返回一种称为 Generator 的迭代器。 通过调用生成器的下一个方法消耗值时,Generator 函数将执行,直到遇到 yield 关键字。

    +

    虽然自定义的迭代器是一个有用的工具,但由于需要显式地维护其内部状态,因此需要谨慎地创建。生成器函数提供了一个强大的选择:它允许你定义一个包含自有迭代算法的函数,同时它可以自动维护自己的状态。生成器函数使用 {{jsxref("Statements/function*","function*")}}语法编写。最初调用时,生成器函数不执行任何代码,而是返回一种称为 Generator 的迭代器。通过调用生成器的下一个方法消耗值时,Generator 函数将执行,直到遇到 yield 关键字。

    可以根据需要多次调用该函数,并且每次都返回一个新的 Generator,但每个 Generator 只能迭代一次。

    -

    我们现在可以调整上面的例子了。 此代码的行为是相同的,但实现更容易编写和读取。

    +

    我们现在可以调整上面的例子了。此代码的行为是相同的,但实现更容易编写和读取。

    function* makeRangeIterator(start = 0, end = Infinity, step = 1) {
         for (let i = start; i < end; i += step) {
    @@ -101,7 +101,7 @@ 

    可迭代对象

    为了实现可迭代,一个对象必须实现 @@iterator 方法,这意味着这个对象(或其原型链中的任意一个对象)必须具有一个带 {{jsxref("Symbol.iterator")}} 键(key)的属性。

    -

    可以多次迭代一个迭代器,或者只迭代一次。 程序员应该知道是哪种情况。 只能迭代一次的 Iterables(例如 Generators)通常从它们的@@iterator方法中返回它本身,其中那些可以多次迭代的方法必须在每次调用@@iterator时返回一个新的迭代器。

    +

    可以多次迭代一个迭代器,或者只迭代一次。程序员应该知道是哪种情况。只能迭代一次的 Iterables(例如 Generators)通常从它们的@@iterator方法中返回它本身,其中那些可以多次迭代的方法必须在每次调用@@iterator时返回一个新的迭代器。

    自定义的可迭代对象

    diff --git a/files/zh-cn/web/javascript/guide/loops_and_iteration/index.html b/files/zh-cn/web/javascript/guide/loops_and_iteration/index.html index 42de49a30d66d8..b2ceb4ae54175d 100644 --- a/files/zh-cn/web/javascript/guide/loops_and_iteration/index.html +++ b/files/zh-cn/web/javascript/guide/loops_and_iteration/index.html @@ -38,7 +38,7 @@

    for 语句

    -

    一个 {{jsxref("statements/for","for")}} 循环会一直重复执行,直到指定的循环条件为 false。 JavaScript 的 for 循环,和 Java、C 的 for 循环,是很相似的。一个 for 语句是这个样子的:

    +

    一个 {{jsxref("statements/for","for")}} 循环会一直重复执行,直到指定的循环条件为 false。JavaScript 的 for 循环,和 Java、C 的 for 循环,是很相似的。一个 for 语句是这个样子的:

    for ([initialExpression]; [condition]; [incrementExpression])
       statement
    @@ -86,7 +86,7 @@ 

    例子

    var btn = document.getElementById("btn"); btn.addEventListener("click", function(){ - alert('选择选项的数量是: ' + howMany(document.selectForm.musicTypes)) + alert('选择选项的数量是:' + howMany(document.selectForm.musicTypes)) }); </script> @@ -94,18 +94,18 @@

    例子

    do...while 语句

    -

    {{jsxref("statements/do...while", "do...while")}} 语句一直重复直到指定的条件求值得到假值(false)。 一个 do...while 语句看起来像这样:

    +

    {{jsxref("statements/do...while", "do...while")}} 语句一直重复直到指定的条件求值得到假值(false)。一个 do...while 语句看起来像这样:

    do
       statement
     while (condition);
     
    -

    statement 在检查条件之前会执行一次。要执行多条语句(语句块),要使用块语句({ ... })包括起来。 如果 condition 为真(true),statement 将再次执行。 在每个执行的结尾会进行条件的检查。当 condition 为假(false),执行会停止并且把控制权交回给 do...while 后面的语句。

    +

    statement 在检查条件之前会执行一次。要执行多条语句(语句块),要使用块语句({ ... })包括起来。如果 condition 为真(true),statement 将再次执行。在每个执行的结尾会进行条件的检查。当 condition 为假(false),执行会停止并且把控制权交回给 do...while 后面的语句。

    例子

    -

    在下面的例子中, 这个 do 循环将至少重复一次,并且一直重复直到 i 不再小于 5。

    +

    在下面的例子中,这个 do 循环将至少重复一次,并且一直重复直到 i 不再小于 5。

    var i = 0;
     do {
    @@ -139,7 +139,7 @@ 

    例子 1

    }
    -

    在每次循环里, n 会增加 1,并被加到 x 上。所以, x 和 n 的变化是:

    +

    在每次循环里, n 会增加 1,并被加到 x 上。所以,x 和 n 的变化是:

    • 第一次完成后:n = 1,x = 1
    • @@ -147,7 +147,7 @@

      例子 1

    • 第三次完成后:n = 3,x = 6
    -

    在三次完成后, 条件 n < 3 的结果不再为真,所以循环终止了。

    +

    在三次完成后,条件 n < 3 的结果不再为真,所以循环终止了。

    例子 2

    @@ -159,7 +159,7 @@

    例子 2

    label 语句

    -

    一个 {{jsxref("statements/label","label")}} 提供了一个让你在程序中其他位置引用它的标识符。例如,你可以用 label 标识一个循环, 然后使用 break 或者 continue 来指出程序是否该停止循环还是继续循环。

    +

    一个 {{jsxref("statements/label","label")}} 提供了一个让你在程序中其他位置引用它的标识符。例如,你可以用 label 标识一个循环,然后使用 break 或者 continue 来指出程序是否该停止循环还是继续循环。

    label 语句的语法看起来像这样:

    @@ -228,10 +228,10 @@

    例子

    break 语句

    -

    使用 {{jsxref("statements/break","break")}} 语句来终止循环,switch, 或者是链接到 label 语句。

    +

    使用 {{jsxref("statements/break","break")}} 语句来终止循环,switch,或者是链接到 label 语句。

      -
    • 当你使用不带 label 的 break 时, 它会立即终止当前所在的 whiledo-whilefor,或者 switch 并把控制权交回这些结构后面的语句。
    • +
    • 当你使用不带 label 的 break 时,它会立即终止当前所在的 whiledo-whilefor,或者 switch 并把控制权交回这些结构后面的语句。
    • 当你使用带 label 的 break 时,它会终止指定的带标记(label)的语句。
    @@ -256,11 +256,11 @@

    例子 2: 终止一个 lab
    var x = 0;
     var z = 0
     labelCancelLoops: while (true) {
    -  console.log("外部循环: " + x);
    +  console.log("外部循环:" + x);
       x += 1;
       z = 1;
       while (true) {
    -    console.log("内部循环: " + z);
    +    console.log("内部循环:" + z);
         z += 1;
         if (z === 10 && x === 10) {
           break labelCancelLoops;
    @@ -276,8 +276,8 @@ 

    continue 语句

    {{jsxref("statements/continue","continue")}} 语句可以用来继续执行(跳过代码块的剩余部分并进入下一循环)一个 whiledo-whilefor,或者 label 语句。

      -
    • 当你使用不带 label 的 continue 时, 它终止当前 whiledo-while,或者 for 语句到结尾的这次的循环并且继续执行下一次循环。
    • -
    • 当你使用带 label 的 continue 时, 它会应用被 label 标识的循环语句。
    • +
    • 当你使用不带 label 的 continue 时,它终止当前 whiledo-while,或者 for 语句到结尾的这次的循环并且继续执行下一次循环。
    • +
    • 当你使用带 label 的 continue 时,它会应用被 label 标识的循环语句。

    continue 语句的语法看起来像这样:

    @@ -326,7 +326,7 @@

    例子 2

    checkiandj 的返回值为 false 时,将会执行 checkiandj 的下面的语句。

    -

    如果 continue 有一个标记 checkiandj, 程序将会从 checkiandj 语句块的顶部继续执行。

    +

    如果 continue 有一个标记 checkiandj,程序将会从 checkiandj 语句块的顶部继续执行。

    var i = 0;
     var j = 10;
    diff --git a/files/zh-cn/web/javascript/guide/meta_programming/index.html b/files/zh-cn/web/javascript/guide/meta_programming/index.html
    index bf43a9b7c98ae9..fee63d3b25b774 100644
    --- a/files/zh-cn/web/javascript/guide/meta_programming/index.html
    +++ b/files/zh-cn/web/javascript/guide/meta_programming/index.html
    @@ -29,7 +29,7 @@ 

    代理

    Proxy 对象定义了一个目标(这里是一个空对象)和一个实现了 get 陷阱的 handler 对象。这里,代理的对象在获取未定义的属性时不会返回 undefined,而是返回 42。

    -

    更多例子参见 {{jsxref("Proxy")}} 页面 。

    +

    更多例子参见 {{jsxref("Proxy")}} 页面。

    术语

    diff --git a/files/zh-cn/web/javascript/guide/modules/index.html b/files/zh-cn/web/javascript/guide/modules/index.html index c3b2f204b91adb..a91f2dd01bc2c0 100644 --- a/files/zh-cn/web/javascript/guide/modules/index.html +++ b/files/zh-cn/web/javascript/guide/modules/index.html @@ -17,7 +17,7 @@

    模块化的背景

    JavaScript 程序本来很小——在早期,它们大多被用来执行独立的脚本任务,在你的 web 页面需要的地方提供一定交互,所以一般不需要多大的脚本。过了几年,我们现在有了运行大量 JavaScript 脚本的复杂程序,还有一些被用在其他环境(例如 Node.js)。

    -

    因此,近年来,有必要开始考虑提供一种将 JavaScript 程序拆分为可按需导入的单独模块的机制。Node.js 已经提供这个能力很长时间了,还有很多的 JavaScript 库和框架已经开始了模块的使用(例如,CommonJS 和基于 AMD 的其他模块系统 如 RequireJS, 以及最新的 Webpack 和 Babel)。

    +

    因此,近年来,有必要开始考虑提供一种将 JavaScript 程序拆分为可按需导入的单独模块的机制。Node.js 已经提供这个能力很长时间了,还有很多的 JavaScript 库和框架已经开始了模块的使用(例如,CommonJS 和基于 AMD 的其他模块系统 如 RequireJS,以及最新的 Webpack 和 Babel)。

    好消息是,最新的浏览器开始原生支持模块功能了,这是本文要重点讲述的。这会是一个好事情 —- 浏览器能够最优化加载模块,使它比使用库更有效率:使用库通常需要做额外的客户端处理。

    @@ -139,7 +139,7 @@

    导入功能到你的脚本

    使用 import 语句,然后你被花括号包围的用逗号分隔的你想导入的功能列表,然后是关键字 from,然后是模块文件的路径。模块文件的路径是相对于站点根目录的相对路径,对于我们的 basic-modules 应该是 /js-examples/modules/basic-modules

    -

    当然,我们写的路径有一点不同 -- 我们使用点语法意味 “当前路径”,跟随着包含我们想要找的文件的路径。这比每次都要写下整个相对路径要好得多,因为它更短,使得 URL 可移植 -- 如果在站点层中你把它移动到不同的路径下面仍然能够工作(修订版 1889482)。

    +

    当然,我们写的路径有一点不同 -- 我们使用点语法意味“当前路径”,跟随着包含我们想要找的文件的路径。这比每次都要写下整个相对路径要好得多,因为它更短,使得 URL 可移植 -- 如果在站点层中你把它移动到不同的路径下面仍然能够工作(修订版 1889482)。

    那么看看例子吧:

    @@ -167,7 +167,7 @@

    导入功能到你的脚本

    应用模块到你的 HTML

    -

    现在我们只需要将 main.mjs 模块应用到我们的 HTML 页面。 这与我们将常规脚本应用于页面的方式非常相似,但有一些显着的差异。

    +

    现在我们只需要将 main.mjs 模块应用到我们的 HTML 页面。这与我们将常规脚本应用于页面的方式非常相似,但有一些显着的差异。

    首先,你需要把 type="module" 放到 {{htmlelement("script")}} 标签中,来声明这个脚本是一个模块:

    @@ -326,7 +326,7 @@

    模块与类(class)

    正如我们之前提到的那样,您还可以导出和导入类;这是避免代码冲突的另一种选择,如果您已经以面向对象的方式编写了模块代码,那么它尤其有用。

    -

    您可以在我们的 classes 目录中看到使用 ES 类重写的形状绘制模块的示例。 例如,square.mjs 文件现在包含单个类中的所有功能:

    +

    您可以在我们的 classes 目录中看到使用 ES 类重写的形状绘制模块的示例。例如,square.mjs 文件现在包含单个类中的所有功能:

    class Square {
       constructor(ctx, listId, length, x, y, color) {
    @@ -366,7 +366,7 @@ 

    合并模块

    备注:这实际上是导入后跟导出的简写,即“我导入模块 x.mjs,然后重新导出部分或全部导出”。

    -

    有关示例,请参阅我们的 module-aggregation。 在这个例子中(基于我们之前的类示例),我们有一个名为 shapes.mjs 的额外模块,它将 circle.mjssquare.mjsriangle.mjs 中的所有功能聚合在一起。 我们还将子模块移动到名为 shapes 的 modules 目录中的子目录中。 所以模块结构现在是这样的:

    +

    有关示例,请参阅我们的 module-aggregation。在这个例子中(基于我们之前的类示例),我们有一个名为 shapes.mjs 的额外模块,它将 circle.mjssquare.mjsriangle.mjs 中的所有功能聚合在一起。我们还将子模块移动到名为 shapes 的 modules 目录中的子目录中。所以模块结构现在是这样的:

    modules/
       canvas.mjs
    @@ -380,7 +380,7 @@ 

    合并模块

    export { Square };
    -

    接下来是聚合部分。 在 shapes.mjs 里面,我们包括以下几行:

    +

    接下来是聚合部分。在 shapes.mjs 里面,我们包括以下几行:

    export { Square } from '/js-examples/modules/module-aggregation/modules/shapes/square.mjs';
     export { Triangle } from '/js-examples/modules/module-aggregation/modules/shapes/triangle.mjs';
    @@ -389,7 +389,7 @@ 

    合并模块

    它们从各个子模块中获取导出,并有效地从 shapes.mjs 模块中获取它们。

    -

    备注:即使 shapes.mjs 文件位于 modules 目录中,我们仍然需要相对于模块根目录编写这些 URL,因此需要 /modules/。 这是使用 JavaScript 模块时混淆的常见原因。

    +

    备注:即使 shapes.mjs 文件位于 modules 目录中,我们仍然需要相对于模块根目录编写这些 URL,因此需要 /modules/。这是使用 JavaScript 模块时混淆的常见原因。

    @@ -443,7 +443,7 @@

    故障排除

    如果为了你的模块有问题,这里有一些提示有可能帮助到你。如果你发现更多的内容欢迎添加进来!

      -
    • 在前面已经提到了,在这里再重申一次: .mjs 后缀的文件需要以 MIME-type 为 javascript/esm 来加载 (或者其他的 JavaScript 兼容的 MIME-type ,比如 application/javascript), 否则,你会一个严格的 MIME 类型检查错误,像是这样的 "The server responded with a non-JavaScript MIME type".
    • +
    • 在前面已经提到了,在这里再重申一次: .mjs 后缀的文件需要以 MIME-type 为 javascript/esm 来加载 (或者其他的 JavaScript 兼容的 MIME-type,比如 application/javascript), 否则,你会一个严格的 MIME 类型检查错误,像是这样的 "The server responded with a non-JavaScript MIME type".
    • 如果你尝试用本地文件加载 HTML 文件 (i.e. with a file:// URL),由于 JavaScript 模块的安全性要求,你会遇到 CORS 错误。你需要通过服务器来做你的测试。GitHub pages is ideal as it also serves .mjs files with the correct MIME type.
    • 因为 .mjs 是一个相当新的文件后缀,一些操作系统可能无法识别,或者尝试把它替换成别的。比如,我们发现 macOS 悄悄地在我们的 .mjs 后缀的文件后面添加上 .js 然后自动隐藏这个后缀。所以我们的文件实际上都是 x.mjs.js。当我们关闭自动隐藏文件后缀名,让它去接受认可 .mjs。问题解决。
    diff --git a/files/zh-cn/web/javascript/guide/numbers_and_dates/index.html b/files/zh-cn/web/javascript/guide/numbers_and_dates/index.html index 0abcf452158bb0..b1e33a5035cb34 100644 --- a/files/zh-cn/web/javascript/guide/numbers_and_dates/index.html +++ b/files/zh-cn/web/javascript/guide/numbers_and_dates/index.html @@ -323,7 +323,7 @@

    日期对象

    • 无参数 : 创建今天的日期和时间,例如: today = new Date();.
    • -
    • 一个符合以下格式的表示日期的字符串: "月 日,年 时:分:秒." 例如: var Xmas95 = new Date("December 25, 1995 13:30:00")。如果你省略时、分、秒,那么他们的值将被设置为 0。
    • +
    • 一个符合以下格式的表示日期的字符串:"月 日,年 时:分:秒." 例如: var Xmas95 = new Date("December 25, 1995 13:30:00")。如果你省略时、分、秒,那么他们的值将被设置为 0。
    • 一个年,月,日的整型值的集合,例如: var Xmas95 = new Date(1995, 11, 25)。
    • 一个年,月,日,时,分,秒的集合,例如: var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);.
    diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/assertions/index.html b/files/zh-cn/web/javascript/guide/regular_expressions/assertions/index.html index 1c33f2e5ee030c..6aa86bd1628069 100644 --- a/files/zh-cn/web/javascript/guide/regular_expressions/assertions/index.html +++ b/files/zh-cn/web/javascript/guide/regular_expressions/assertions/index.html @@ -63,7 +63,7 @@

    边界类断言

    \B -

    匹配非单词边界。这是上一个字符和下一个字符属于同一类型的位置:要么两者都必须是单词,要么两者都必须是非单词,例如在两个字母之间或两个空格之间。字符串的开头和结尾被视为非单词。与匹配的词边界相同,匹配的非词边界也不包含在匹配中。例如,/\Bon/ 在 “at noon” 中匹配 “on” ,/ye\B/ 在 "possibly yesterday"中匹配"ye" 。

    +

    匹配非单词边界。这是上一个字符和下一个字符属于同一类型的位置:要么两者都必须是单词,要么两者都必须是非单词,例如在两个字母之间或两个空格之间。字符串的开头和结尾被视为非单词。与匹配的词边界相同,匹配的非词边界也不包含在匹配中。例如,/\Bon/ 在“at noon”中匹配“on” ,/ye\B/ 在 "possibly yesterday"中匹配"ye" 。

    @@ -91,7 +91,7 @@

    其他断言 

    - +
    向前断言: x 被 y 跟随时匹配 x。例如,对于/Jack(?=Sprat)/,“Jack”在跟有“Sprat”的情况下才会得到匹配./Jack(?=Sprat|Frost)/ “Jack”后跟有“Sprat”或“Frost”的情况下才会得到匹配。不过, 匹配结果不包括“Sprat”或“Frost”。向前断言: x 被 y 跟随时匹配 x。例如,对于/Jack(?=Sprat)/,“Jack”在跟有“Sprat”的情况下才会得到匹配./Jack(?=Sprat|Frost)/ “Jack”后跟有“Sprat”或“Frost”的情况下才会得到匹配。不过,匹配结果不包括“Sprat”或“Frost”。
    @@ -127,7 +127,7 @@

    其他断言 

    - +
    向后否定断言: x 不跟随 y 时匹配 x。例如,对于/(?<!-)\d+/,数字不紧随 - 符号的情况下才会得到匹配。对于/(?<!-)\d+/.exec(3) ,“3”得到匹配。 而/(?<!-)\d+/.exec(-3)的结果无匹配,这是由于数字之前有 - 符号。向后否定断言: x 不跟随 y 时匹配 x。例如,对于/(?<!-)\d+/,数字不紧随 - 符号的情况下才会得到匹配。对于/(?<!-)\d+/.exec(3) ,“3”得到匹配。而/(?<!-)\d+/.exec(-3)的结果无匹配,这是由于数字之前有 - 符号。
    @@ -176,10 +176,10 @@

    使用 ^(控制字符
    let fruits = ["Apple", "Watermelon", "Orange", "Avocado", "Strawberry"];
     
    -// 使用正则 /^[^A]/ 选择 不是以 ‘A’ 开头的水果
    -// 在这个例子中,“^” 控件符号表示两种含义:
    +// 使用正则 /^[^A]/ 选择 不是以‘A’开头的水果
    +// 在这个例子中,“^”控件符号表示两种含义:
     // 1) 匹配输入的开头
    -// 2) 一个否定的字符集: [^A] ,意思是匹配不是 ‘A’ 的字符
    +// 2) 一个否定的字符集:[^A] ,意思是匹配不是‘A’的字符
     
     let fruitsStartsWithNotA = fruits.filter(fruit => /^[^A]/.test(fruit));
     
    @@ -189,7 +189,7 @@ 

    匹配字边界

    let fruitsWithDescription = ["Red apple", "Orange orange", "Green Avocado"];
     
    -// 选择包含以 “en” 或 “ed” 结尾的单词的描述:
    +// 选择包含以“en”或“ed”结尾的单词的描述:
     let enEdSelection = fruitsWithDescription.filter(descr => /(en|ed)\b/.test(descr));
     
     console.log(enEdSelection); // [ 'Red apple', 'Green Avocado' ]
    diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/character_classes/index.html b/files/zh-cn/web/javascript/guide/regular_expressions/character_classes/index.html index 38553d9d09ccb6..b95e65e15da696 100644 --- a/files/zh-cn/web/javascript/guide/regular_expressions/character_classes/index.html +++ b/files/zh-cn/web/javascript/guide/regular_expressions/character_classes/index.html @@ -41,7 +41,7 @@

    类型

    \d -

    匹配任何数字 (阿拉伯数字)。 相当于 [0-9]. 例如,/\d/ 或 /[0-9]/ 匹配 “B2is the suite number”中的“2”。

    +

    匹配任何数字 (阿拉伯数字)。相当于 [0-9]. 例如,/\d/ 或 /[0-9]/ 匹配“B2is the suite number”中的“2”。

    diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/groups_and_ranges/index.html b/files/zh-cn/web/javascript/guide/regular_expressions/groups_and_ranges/index.html index e051a59f3172b5..8d3e2dcf9a7800 100644 --- a/files/zh-cn/web/javascript/guide/regular_expressions/groups_and_ranges/index.html +++ b/files/zh-cn/web/javascript/guide/regular_expressions/groups_and_ranges/index.html @@ -35,7 +35,7 @@

    类型

    例如,[abcd-][-abcd] 将会在 "brisket" 匹配 "b" , 在 "chop" 匹配 "c" , 并且匹配 "non-profit" 中的 "-" (连字符)

    -

    例如,[\w-] 是字符集 \w 和 “-”(连字符)的并集,与这种写法一样: [A-Za-z0-9_-].。他们都会 在 "brisket"中匹配 “b”,  在 "chop"中匹配 “c”, 在 "non-profit" 中匹配 "n"。

    +

    例如,[\w-] 是字符集 \w 和“-”(连字符)的并集,与这种写法一样: [A-Za-z0-9_-].。他们都会 在 "brisket"中匹配“b”,  在 "chop"中匹配“c”, 在 "non-profit" 中匹配 "n"。

    @@ -68,7 +68,7 @@

    类型

    \n -

    其中 n 是一个正整数。对正则表达式中与 n 括号匹配的最后一个子字符串的反向引用 (计算左括号)。例如,/apple(,)\sorange\1/ 匹配 “apple,orange,cherry,peach” 中的 "apple,orange,", 其中 \1 引用了 之前使用 () 捕获的

    +

    其中 n 是一个正整数。对正则表达式中与 n 括号匹配的最后一个子字符串的反向引用 (计算左括号)。例如,/apple(,)\sorange\1/ 匹配“apple,orange,cherry,peach”中的 "apple,orange,",其中 \1 引用了 之前使用 () 捕获的

    @@ -76,14 +76,14 @@

    类型

    具名捕获组: 匹配"x"并将其存储在返回的匹配项的 groups 属性中,该属性位于<Name>指定的名称下。尖括号 (<>) 用于组名。

    -

    例如,使用正则 /-(?<customName>\w)/ 匹配 “web-doc” 中的 “d”

    +

    例如,使用正则 /-(?<customName>\w)/ 匹配“web-doc”中的“d”

    'web-doc'.match(/-(?<customName>\w)/).groups   //{customName: "d"}    

    (?:x) - 非捕获组: 匹配 “x”,但不记得匹配。不能从结果数组的元素中收回匹配的子字符串 ([1], ..., [n]) or from the predefined RegExp object's properties ($1, ..., $9). + 非捕获组: 匹配“x”,但不记得匹配。不能从结果数组的元素中收回匹配的子字符串 ([1], ..., [n]) or from the predefined RegExp object's properties ($1, ..., $9). @@ -115,7 +115,7 @@

    使用命名组

    let users= `姓氏:李,名字:雷
     姓氏:韩,名字:梅梅`;
     
    -let regexpNames =  /姓氏: (?<first>.+), 名字: (?<last>.+)/mg;
    +let regexpNames =  /姓氏:(?<first>.+), 名字:(?<last>.+)/mg;
     let match = regexpNames.exec(users);
     
     do {
    diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/index.html b/files/zh-cn/web/javascript/guide/regular_expressions/index.html
    index 0dc45d5cde7b7f..25bc4ee8846867 100644
    --- a/files/zh-cn/web/javascript/guide/regular_expressions/index.html
    +++ b/files/zh-cn/web/javascript/guide/regular_expressions/index.html
    @@ -164,7 +164,7 @@ 

    使用特殊字符

    匹配'x'仅当'x'前面是'y'.这种叫做后行断言。

    -

    例如,/(?<=Jack)Sprat/会匹配到' Sprat '仅仅当它前面是' Jack '。/(?<=Jack|Tom)Sprat/匹配‘ Sprat ’仅仅当它前面是'Jack'或者是‘Tom’。但是‘Jack’和‘Tom’都不是匹配结果的一部分。

    +

    例如,/(?<=Jack)Sprat/会匹配到' Sprat '仅仅当它前面是' Jack '。/(?<=Jack|Tom)Sprat/匹配‘Sprat’仅仅当它前面是'Jack'或者是‘Tom’。但是‘Jack’和‘Tom’都不是匹配结果的一部分。

    @@ -209,7 +209,7 @@

    使用特殊字符

    {n,m} -

    n 和 m 都是整数。匹配前面的字符至少 n 次,最多 m 次。如果 n 或者 m 的值是 0, 这个值被忽略。

    +

    n 和 m 都是整数。匹配前面的字符至少 n 次,最多 m 次。如果 n 或者 m 的值是 0,这个值被忽略。

    例如,/a{1, 3}/ 并不匹配“cndy”中的任意字符,匹配“candy”中的 a,匹配“caandy”中的前两个 a,也匹配“caaaaaaandy”中的前三个 a。注意,当匹配”caaaaaaandy“时,匹配的值是“aaa”,即使原始的字符串中有更多的 a。

    @@ -222,7 +222,7 @@

    使用特殊字符

    [^xyz] -

    一个反向字符集。也就是说, 它匹配任何没有包含在方括号中的字符。你可以使用破折号(-)来指定一个字符范围。任何普通字符在这里都是起作用的。

    +

    一个反向字符集。也就是说,它匹配任何没有包含在方括号中的字符。你可以使用破折号(-)来指定一个字符范围。任何普通字符在这里都是起作用的。

    例如,[^abc] 和 [^a-c] 是一样的。他们匹配"brisket"中的‘r’,也匹配“chop”中的‘h’。

    @@ -353,7 +353,7 @@

    使用特殊字符

    \0 - 匹配 NULL(U+0000)字符, 不要在这后面跟其它小数,因为 \0<digits> 是一个八进制转义序列。 + 匹配 NULL(U+0000)字符,不要在这后面跟其它小数,因为 \0<digits> 是一个八进制转义序列。 \xhh @@ -374,11 +374,11 @@

    使用特殊字符

    Escaping

    -

    如果你需要使用任何特殊字符的字面值(例如,搜索字符'*'),你必须通过在它前面放一个反斜杠来转义它。 例如,要搜索'a'后跟'*'后跟'b',你应该使用/a\*b/- 反斜杠“转义”字符'*',使其成为文字而非特殊符号。

    +

    如果你需要使用任何特殊字符的字面值(例如,搜索字符'*'),你必须通过在它前面放一个反斜杠来转义它。例如,要搜索'a'后跟'*'后跟'b',你应该使用/a\*b/- 反斜杠“转义”字符'*',使其成为文字而非特殊符号。

    -

    类似地,如果您正在编写正则表达式文字并且需要匹配斜杠('/'),那么需要转义它(否则,斜杠是正则终止符)。 例如,要搜索字符串“/ example /”后跟一个或多个字母字符,您需要使用/\/example\/[a-z]+/i——每个斜杠之前使用反斜杠使它们成为普通字符。

    +

    类似地,如果您正在编写正则表达式文字并且需要匹配斜杠('/'),那么需要转义它(否则,斜杠是正则终止符)。例如,要搜索字符串“/ example /”后跟一个或多个字母字符,您需要使用/\/example\/[a-z]+/i——每个斜杠之前使用反斜杠使它们成为普通字符。

    -

    要匹配文本符号反斜杠,您需要转义反斜杠。 例如,要匹配字符串“C:\”,其中“C”可以是任何字母,您将使用/[A-Z]:\\/ —— 第一个反斜杠转义后面的那个反斜杠,因此表达式搜索单个普通字符反斜杠。

    +

    要匹配文本符号反斜杠,您需要转义反斜杠。例如,要匹配字符串“C:\”,其中“C”可以是任何字母,您将使用/[A-Z]:\\/ —— 第一个反斜杠转义后面的那个反斜杠,因此表达式搜索单个普通字符反斜杠。

    如果将 RegExp 构造函数与字符串文字一起使用,请记住反斜杠是字符串文字中的转义,因此要在正则表达式中使用它,您需要在字符串文字级别转义它。 /a\*b/new RegExp("a\\*b")创建的表达式是相同的,搜索“a”后跟文字“*”后跟“b”。

    @@ -434,7 +434,7 @@

    使用正则表达式

    {{jsxref("String.search", "search")}} - 一个在字符串中测试匹配的 String 方法,它返回匹配到的位置索引,或者在失败时返回-1。 + 一个在字符串中测试匹配的 String 方法,它返回匹配到的位置索引,或者在失败时返回 -1。 {{jsxref("String.replace", "replace")}} @@ -712,7 +712,7 @@

    用特殊字符检验输入

    在以下例子中,我们期望用户输入一个电话号码。当用户点击“Check”按钮,我们的脚本开始检查这些数字是否合法。如果数字合法(匹配正则表达式所规定的字符序列),脚本显示一条感谢用户的信息并确认该数字。如果这串数字不合法,脚本提示用户电话号码不合法。.

    -

    包含非捕获括号 (?: 这个正则表达式寻找三个数字字符\d{3} 或者 | 一个左半括号\(跟着三位数字\d{3}, 跟着一个封闭括号 \), (结束非捕获括号 )), 后跟着一个短破折号或正斜杠或小数点,随后跟随三个数字字符,当记忆字符 ([-\/\.]) 捕获并记住,后面跟着三位小数 \d{3},再后面跟随记住的破折号、正斜杠或小数点 \1,最后跟着四位小数 \d{4}。

    +

    包含非捕获括号 (?: 这个正则表达式寻找三个数字字符\d{3} 或者 | 一个左半括号\(跟着三位数字\d{3}, 跟着一个封闭括号 \), (结束非捕获括号 )),后跟着一个短破折号或正斜杠或小数点,随后跟随三个数字字符,当记忆字符 ([-\/\.]) 捕获并记住,后面跟着三位小数 \d{3},再后面跟随记住的破折号、正斜杠或小数点 \1,最后跟着四位小数 \d{4}。

    当用户按下 Enter 设置 RegExp.input,这些变化也能被激活。

    diff --git a/files/zh-cn/web/javascript/guide/regular_expressions/unicode_property_escapes/index.html b/files/zh-cn/web/javascript/guide/regular_expressions/unicode_property_escapes/index.html index bc1d112466042f..ffd4f04b868f63 100644 --- a/files/zh-cn/web/javascript/guide/regular_expressions/unicode_property_escapes/index.html +++ b/files/zh-cn/web/javascript/guide/regular_expressions/unicode_property_escapes/index.html @@ -41,7 +41,7 @@

    句法

    UnicodeBinary 属性名
    -
    Binary 属性名. E.g.: ASCIIAlpha, Math, DiacriticEmojiHex_DigitMath, White_space, 等。另见 Unicode Data PropList.txt.
    +
    Binary 属性名。E.g.: ASCIIAlpha, Math, DiacriticEmojiHex_DigitMath, White_space, 等。另见 Unicode Data PropList.txt.
    Unicode 属性名
    Non-binary 属性名:
    Unicode 属性值
    diff --git a/files/zh-cn/web/javascript/guide/text_formatting/index.html b/files/zh-cn/web/javascript/guide/text_formatting/index.html index 7e5fec841e160d..c8c3b27302e39e 100644 --- a/files/zh-cn/web/javascript/guide/text_formatting/index.html +++ b/files/zh-cn/web/javascript/guide/text_formatting/index.html @@ -12,7 +12,7 @@

    字符串

    -

    JavaScript 中的 {{Glossary("String")}} 类型用于表示文本型的数据。它是由无符号整数值(16bit)作为元素而组成的集合。字符串中的每个元素在字符串中占据一个位置. 第一个元素的 index 值是 0,下一个元素的 index 值是 1,以此类推。字符串的长度就是字符串中所含的元素个数.你可以通过 String 字面值或者 String 对象两种方式创建一个字符串。

    +

    JavaScript 中的 {{Glossary("String")}} 类型用于表示文本型的数据。它是由无符号整数值(16bit)作为元素而组成的集合。字符串中的每个元素在字符串中占据一个位置。第一个元素的 index 值是 0,下一个元素的 index 值是 1,以此类推。字符串的长度就是字符串中所含的元素个数。你可以通过 String 字面值或者 String 对象两种方式创建一个字符串。

    String 字面量

    @@ -52,7 +52,7 @@

    字符串对象

    {{jsxref("String")}} 对象是对原始 string 类型的封装 .

    const foo = new String('foo'); // 创建一个 String 对象
    -console.log(foo); // 输出: [String: 'foo']
    +console.log(foo); // 输出:[String: 'foo']
     typeof foo; // 返回 'object'

    你可以在 String 字面值上使用 String 对象的任何方法—JavaScript 自动把 String 字面值转换为一个临时的 String 对象,然后调用其相应方法,最后丢弃此临时对象。在 String 字面值上也可以使用 String.length 属性。

    @@ -149,7 +149,7 @@

    多行模板字符串

    模板字符串是一种允许内嵌表达式的 String 字面值。可以用它实现多行字符串或者字符串内插等特性。

    -

    模板字符串使用反勾号 (` `) (grave accent) 包裹内容而不是单引号或双引号。模板字符串可以包含占位符. 占位符用美元符号和花括号标识 (${expression}).

    +

    模板字符串使用反勾号 (` `) (grave accent) 包裹内容而不是单引号或双引号。模板字符串可以包含占位符。占位符用美元符号和花括号标识 (${expression}).

    多行

    @@ -187,11 +187,11 @@

    嵌入表达式

    国际化

    -

    {{jsxref("Intl")}} 对象是 ECMAScript 国际化 API 的命名空间,它提供了语言敏感的字符串比较,数字格式化和日期时间格式化功能.  {{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, 和 {{jsxref("DateTimeFormat")}} 对象的构造函数是Intl对象的属性。

    +

    {{jsxref("Intl")}} 对象是 ECMAScript 国际化 API 的命名空间,它提供了语言敏感的字符串比较,数字格式化和日期时间格式化功能。 {{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, 和 {{jsxref("DateTimeFormat")}} 对象的构造函数是Intl对象的属性。

    日期和时间格式化

    -

    {{jsxref("DateTimeFormat")}} 对象在日期和时间的格式化方面很有用。下面的代码把一个日期格式化为美式英语格式. (不同时区结果不同.)

    +

    {{jsxref("DateTimeFormat")}} 对象在日期和时间的格式化方面很有用。下面的代码把一个日期格式化为美式英语格式。(不同时区结果不同.)

    const msPerDay = 24 * 60 * 60 * 1000;
     
    diff --git a/files/zh-cn/web/javascript/guide/using_promises/index.html b/files/zh-cn/web/javascript/guide/using_promises/index.html
    index 01f3922c631939..2d7572e889809c 100644
    --- a/files/zh-cn/web/javascript/guide/using_promises/index.html
    +++ b/files/zh-cn/web/javascript/guide/using_promises/index.html
    @@ -22,12 +22,12 @@
     
     
    // 成功的回调函数
     function successCallback(result) {
    -  console.log("音频文件创建成功: " + result);
    +  console.log("音频文件创建成功:" + result);
     }
     
     // 失败的回调函数
     function failureCallback(error) {
    -  console.log("音频文件创建失败: " + error);
    +  console.log("音频文件创建失败:" + error);
     }
     
     createAudioFileAsync(audioSettings, successCallback, failureCallback)
    @@ -219,7 +219,7 @@

    Promise 拒绝事件

    在旧式回调 API 中创建 Promise

    -

    可以通过 Promise 的构造器从零开始创建 {{jsxref("Promise")}}。 这种方式(通过构造器的方式)应当只在封装旧 API 的时候用到。

    +

    可以通过 Promise 的构造器从零开始创建 {{jsxref("Promise")}}。这种方式(通过构造器的方式)应当只在封装旧 API 的时候用到。

    理想状态下,所有的异步函数都已经返回 Promise 了。但有一些 API 仍然使用旧方式来传入的成功(或者失败)的回调。典型的例子就是 {{domxref("WindowTimers.setTimeout", "setTimeout()")}} 函数:

    diff --git a/files/zh-cn/web/javascript/guide/working_with_objects/index.html b/files/zh-cn/web/javascript/guide/working_with_objects/index.html index 2b566222eaa48e..57965e9a18d50f 100644 --- a/files/zh-cn/web/javascript/guide/working_with_objects/index.html +++ b/files/zh-cn/web/javascript/guide/working_with_objects/index.html @@ -16,7 +16,7 @@

    对象概述

    -

    javascript 中的对象 (物体),和其它编程语言中的对象一样,可以比照现实生活中的对象 (物体) 来理解它。 javascript 中对象 (物体) 的概念可以比照着现实生活中实实在在的物体来理解。

    +

    javascript 中的对象 (物体),和其它编程语言中的对象一样,可以比照现实生活中的对象 (物体) 来理解它。javascript 中对象 (物体) 的概念可以比照着现实生活中实实在在的物体来理解。

    在 javascript 中,一个对象可以是一个单独的拥有属性和类型的实体。我们拿它和一个杯子做下类比。一个杯子是一个对象 (物体),拥有属性。杯子有颜色,图案,重量,由什么材质构成等等。同样,javascript 对象也有属性来定义它的特征。

    @@ -64,7 +64,7 @@

    对象和属性

    console.log(myObj);
    -

    请注意,方括号中的所有键都将转换为字符串类型,因为 JavaScript 中的对象只能使用 String 类型作为键类型。 例如,在上面的代码中,当将键 obj 添加到 myObj 时,JavaScript 将调用 obj.toString() 方法,并将此结果字符串用作新键。

    +

    请注意,方括号中的所有键都将转换为字符串类型,因为 JavaScript 中的对象只能使用 String 类型作为键类型。例如,在上面的代码中,当将键 obj 添加到 myObj 时,JavaScript 将调用 obj.toString() 方法,并将此结果字符串用作新键。

    你也可以通过存储在变量中的字符串来访问属性:

    @@ -122,7 +122,7 @@

    枚举一个对象的所有属性

    -

    这在展示 “隐藏”(在原型中的不能通过对象访问的属性,因为另一个同名的属性存在于原型链的早期)的属性时很有用。如果只想列出可访问的属性,那么只需要去除数组中的重复元素即可。

    +

    这在展示“隐藏”(在原型中的不能通过对象访问的属性,因为另一个同名的属性存在于原型链的早期)的属性时很有用。如果只想列出可访问的属性,那么只需要去除数组中的重复元素即可。

    创建新对象

    @@ -491,7 +491,7 @@

    比较对象

    -

    备注: "===" 运算符用来检查数值是否相等: 1 === "1"返回 false,而 1 == "1" 返回 true

    +

    备注: "===" 运算符用来检查数值是否相等:1 === "1"返回 false,而 1 == "1" 返回 true

    // 两个变量,同一个对象
    diff --git a/files/zh-cn/web/javascript/index.html b/files/zh-cn/web/javascript/index.html
    index bfd18334992c7b..f0568d95d6c911 100644
    --- a/files/zh-cn/web/javascript/index.html
    +++ b/files/zh-cn/web/javascript/index.html
    @@ -46,7 +46,7 @@ 

    中级内容

    客户端 Web API
    -
    当你正在给网页或者网页 APP 编写客户端 JavaScript 时, 你离不开使用这些 API — 这些用来操作浏览器各个不同方面和网页所在的操作系统,甚至是来自于其他网页和服务器的数据的接口。在这个模块,我们来探究这些 API 是什么,以及怎么在你的日常开发工作中使用一些最常用的 API。
    +
    当你正在给网页或者网页 APP 编写客户端 JavaScript 时,你离不开使用这些 API — 这些用来操作浏览器各个不同方面和网页所在的操作系统,甚至是来自于其他网页和服务器的数据的接口。在这个模块,我们来探究这些 API 是什么,以及怎么在你的日常开发工作中使用一些最常用的 API。
    重新介绍 JavaScript(JS 教程)
    给那些有 JavaScript 基础的朋友们的 JavaScript 概述。
    JavaScript 数据结构
    diff --git a/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.html b/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.html index 233ba9bceec410..f327246222da81 100644 --- a/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.html +++ b/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.html @@ -19,7 +19,7 @@

    对于使用过基于类的语言 (如 Java 或 C++) 的开发者们来说,JavaScript 实在是有些令人困惑 —— JavaScript 是动态的,本身不提供一个 class 的实现。即便是在 ES2015/ES6 中引入了 class 关键字,但那也只是语法糖,JavaScript 仍然是基于原型的。

    -

    当谈到继承时,JavaScript 只有一种结构:对象。每个实例对象(object)都有一个私有属性(称之为 __proto__ )指向它的构造函数的原型对象(prototype)。该原型对象也有一个自己的原型对象(__proto__),层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。

    +

    当谈到继承时,JavaScript 只有一种结构:对象。每个实例对象(object)都有一个私有属性(称之为 __proto__)指向它的构造函数的原型对象(prototype)。该原型对象也有一个自己的原型对象(__proto__),层层向上直到一个对象的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。

    几乎所有 JavaScript 中的对象都是位于原型链顶端的 {{jsxref("Object")}} 的实例。

    @@ -200,7 +200,7 @@

    在 JavaScript 中使用原型

    否则,如果 doSomeInstancing 中 __proto__ 不具有该属性,则检查doSomeInstancing 的 __proto__ 的  __proto__ 是否具有该属性。默认情况下,任何函数的原型属性 __proto__ 都是 window.Object.prototype. 因此,通过doSomeInstancing 的 __proto__ 的  __proto__  ( 同 doSomething.prototype 的 __proto__ (同  Object.prototype)) 来查找要搜索的属性。

    -

    如果属性不存在 doSomeInstancing 的 __proto__ 的  __proto__ 中, 那么就会在doSomeInstancing 的 __proto__ 的  __proto__ 的  __proto__ 中查找。然而,这里存在个问题:doSomeInstancing 的 __proto__ 的  __proto__ 的  __proto__ 其实不存在。因此,只有这样,在 __proto__ 的整个原型链被查看之后,这里没有更多的 __proto__ , 浏览器断言该属性不存在,并给出属性值为 undefined 的结论。

    +

    如果属性不存在 doSomeInstancing 的 __proto__ 的  __proto__ 中,那么就会在doSomeInstancing 的 __proto__ 的  __proto__ 的  __proto__ 中查找。然而,这里存在个问题:doSomeInstancing 的 __proto__ 的  __proto__ 的  __proto__ 其实不存在。因此,只有这样,在 __proto__ 的整个原型链被查看之后,这里没有更多的 __proto__ ,浏览器断言该属性不存在,并给出属性值为 undefined 的结论。

    让我们在控制台窗口中输入更多的代码,如下:

    @@ -377,8 +377,8 @@

    总结:4 个用于拓展 console.log(inst.foo_prop); console.log(inst.bar_prop);

    - 支持目前以及所有可想象到的浏览器 (IE5.5 都可以使用)。 这种方法非常快,非常符合标准,并且充分利用 JIT 优化。 - 为使用此方法,必须对相关函数初始化。 在初始化过程中,构造函数可以存储每个对象必须生成的唯一信息。但是,这种唯一信息只生成一次,可能会带来潜在的问题。此外,构造函数的初始化,可能会将不需要的方法放在对象上。然而,如果你只在自己的代码中使用,你也清楚(或有通过注释等写明)各段代码在做什么,这些在大体上都不是问题(事实上,通常是有益处的)。 + 支持目前以及所有可想象到的浏览器 (IE5.5 都可以使用)。这种方法非常快,非常符合标准,并且充分利用 JIT 优化。 + 为使用此方法,必须对相关函数初始化。在初始化过程中,构造函数可以存储每个对象必须生成的唯一信息。但是,这种唯一信息只生成一次,可能会带来潜在的问题。此外,构造函数的初始化,可能会将不需要的方法放在对象上。然而,如果你只在自己的代码中使用,你也清楚(或有通过注释等写明)各段代码在做什么,这些在大体上都不是问题(事实上,通常是有益处的)。 Object.create @@ -419,7 +419,7 @@

    总结:4 个用于拓展 console.log(inst.bar_prop)

    支持当前所有非微软版本或者 IE9 以上版本的浏览器。允许一次性地直接设置 __proto__ 属性,以便浏览器能更好地优化对象。同时允许通过 Object.create(null) 来创建一个没有原型的对象。 - 不支持 IE8 以下的版本。然而,随着微软不再对系统中运行的旧版本浏览器提供支持,这将不是在大多数应用中的主要问题。 另外,这个慢对象初始化在使用第二个参数的时候有可能成为一个性能黑洞,因为每个对象的描述符属性都有自己的描述对象。当以对象的格式处理成百上千的对象描述的时候,可能会造成严重的性能问题。 + 不支持 IE8 以下的版本。然而,随着微软不再对系统中运行的旧版本浏览器提供支持,这将不是在大多数应用中的主要问题。另外,这个慢对象初始化在使用第二个参数的时候有可能成为一个性能黑洞,因为每个对象的描述符属性都有自己的描述对象。当以对象的格式处理成百上千的对象描述的时候,可能会造成严重的性能问题。 @@ -461,7 +461,7 @@

    总结:4 个用于拓展 console.log(inst.bar_prop)

    支持所有现代浏览器和微软 IE9+ 浏览器。允许动态操作对象的原型,甚至能强制给通过 Object.create(null) 创建出来的没有原型的对象添加一个原型。 - 这个方式表现并不好,应该被弃用。如果你在生产环境中使用这个方法,那么快速运行 Javascript 就是不可能的,因为许多浏览器优化了原型,尝试在调用实例之前猜测方法在内存中的位置,但是动态设置原型干扰了所有的优化,甚至可能使浏览器为了运行成功,使用完全未经优化的代码进行重编译。 不支持 IE8 及以下的浏览器版本。 + 这个方式表现并不好,应该被弃用。如果你在生产环境中使用这个方法,那么快速运行 Javascript 就是不可能的,因为许多浏览器优化了原型,尝试在调用实例之前猜测方法在内存中的位置,但是动态设置原型干扰了所有的优化,甚至可能使浏览器为了运行成功,使用完全未经优化的代码进行重编译。不支持 IE8 及以下的浏览器版本。 __proto__ @@ -496,14 +496,14 @@

    总结:4 个用于拓展 console.log(inst.bar_prop)

    支持所有现代非微软版本以及 IE11 以上版本的浏览器。将 __proto__ 设置为非对象的值会静默失败,并不会抛出错误。 - 应该完全将其抛弃因为这个行为完全不具备性能可言。 如果你在生产环境中使用这个方法,那么快速运行 Javascript 就是不可能的,因为许多浏览器优化了原型,尝试在调用实例之前猜测方法在内存中的位置,但是动态设置原型干扰了所有的优化,甚至可能使浏览器为了运行成功,使用完全未经优化的代码进行重编译。不支持 IE10 及以下的浏览器版本。 + 应该完全将其抛弃因为这个行为完全不具备性能可言。如果你在生产环境中使用这个方法,那么快速运行 Javascript 就是不可能的,因为许多浏览器优化了原型,尝试在调用实例之前猜测方法在内存中的位置,但是动态设置原型干扰了所有的优化,甚至可能使浏览器为了运行成功,使用完全未经优化的代码进行重编译。不支持 IE10 及以下的浏览器版本。

    prototypeObject.getPrototypeOf

    -

    对于从 Java 或 C++ 转过来的开发人员来说,JavaScript 会有点让人困惑,因为它完全是动态的,都是运行时,而且不存在类(class)。所有的都是实例(对象)。即使我们模拟出的 “类”,也只是一个函数对象。

    +

    对于从 Java 或 C++ 转过来的开发人员来说,JavaScript 会有点让人困惑,因为它完全是动态的,都是运行时,而且不存在类(class)。所有的都是实例(对象)。即使我们模拟出的“类”,也只是一个函数对象。

    你可能已经注意到我们的 function A 有一个叫做 prototype 的特殊属性。该特殊属性可与 JavaScript 的 new 操作符一起使用。对原型对象的引用被复制到新实例的内部 [[Prototype]] 属性。例如,当执行 var a1 = new A(); 时,JavaScript(在内存中创建对象之后,和在运行函数 A()this 指向对象之前)设置 a1.[[Prototype]] = A.prototype;。然后当您访问实例的属性时,JavaScript 首先会检查它们是否直接存在于该对象上,如果不存在,则会 [[Prototype]] 中查找。这意味着你在 prototype 中定义的所有内容都可以由所有实例有效地共享,你甚至可以稍后更改部分 prototype,并在所有现有实例中显示更改(如果有必要的话)。

    @@ -511,7 +511,7 @@

    prototypeOb

    简而言之, prototype 是用于类的,而 Object.getPrototypeOf() 是用于实例的(instances),两者功能一致。

    -

    [[Prototype]] 看起来就像递归引用, 如 a1.doSomethingObject.getPrototypeOf(a1).doSomethingObject.getPrototypeOf(Object.getPrototypeOf(a1)).doSomething 等等等, 直到它被找到或 Object.getPrototypeOf 返回 null

    +

    [[Prototype]] 看起来就像递归引用,如 a1.doSomethingObject.getPrototypeOf(a1).doSomethingObject.getPrototypeOf(Object.getPrototypeOf(a1)).doSomething 等等等,直到它被找到或 Object.getPrototypeOf 返回 null

    因此,当你执行:

    diff --git a/files/zh-cn/web/javascript/memory_management/index.html b/files/zh-cn/web/javascript/memory_management/index.html index 2e13721a9ffe70..3889306acfb73e 100644 --- a/files/zh-cn/web/javascript/memory_management/index.html +++ b/files/zh-cn/web/javascript/memory_management/index.html @@ -11,7 +11,7 @@

    简介

    -

    像 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()free()。相反,JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。 释放的过程称为垃圾回收。这个“自动”是混乱的根源,并让 JavaScript(和其他高级语言)开发者错误的感觉他们可以不关心内存管理。 

    +

    像 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()free()。相反,JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。这个“自动”是混乱的根源,并让 JavaScript(和其他高级语言)开发者错误的感觉他们可以不关心内存管理。 

    内存生命周期

    diff --git a/files/zh-cn/web/javascript/reference/about/index.html b/files/zh-cn/web/javascript/reference/about/index.html index 1205da3ce4921c..a41ceca588e3d6 100644 --- a/files/zh-cn/web/javascript/reference/about/index.html +++ b/files/zh-cn/web/javascript/reference/about/index.html @@ -7,9 +7,9 @@ ---
    {{JsSidebar}}
    -

    该 JavaScript 参考提供 Javascript 语言的知识仓库。 详细的描述了完整的 Javascript 语言的信息。如果你编写 JavaScript 代码, 你会经常使用这些页面 (因此标题为 "JavaScript 参考文档")。如果你正在学习 JavaScript, 或需要帮助理解一些 Javascript 的功能或特性,请查看 JavaScript 指南

    +

    该 JavaScript 参考提供 Javascript 语言的知识仓库。详细的描述了完整的 Javascript 语言的信息。如果你编写 JavaScript 代码,你会经常使用这些页面 (因此标题为 "JavaScript 参考文档")。如果你正在学习 JavaScript,或需要帮助理解一些 Javascript 的功能或特性,请查看 JavaScript 指南

    -

    JavaScript 语言正打算在更大的环境中使用,如浏览器,服务端脚本,以及类似环境中。大多数情况下, 该参考的内容试图保证与目标浏览器环境无关。

    +

    JavaScript 语言正打算在更大的环境中使用,如浏览器,服务端脚本,以及类似环境中。大多数情况下,该参考的内容试图保证与目标浏览器环境无关。

    哪里查找 JavaScript 信息

    @@ -30,7 +30,7 @@

    该参考的结构

    标准内置对象
    该章节描述了所有的 JavaScript 标准内置对象,及相关的方法和属性。
    语句和声明
    -
    JavaScript 应用由合适的语法的语句构成。单条语句可以占用多行.多条语句也可能只占用一行,中间用分好分隔。语句不是只有一个关键词,而是由一组关键词组成。
    +
    JavaScript 应用由合适的语法的语句构成。单条语句可以占用多行。多条语句也可能只占用一行,中间用分好分隔。语句不是只有一个关键词,而是由一组关键词组成。
    表达式和运算符
    该章节描述了所有的 JavaScript 操作符运算符,表达式和关键词。
    函数
    diff --git a/files/zh-cn/web/javascript/reference/classes/constructor/index.html b/files/zh-cn/web/javascript/reference/classes/constructor/index.html index 5819fe1d3d183e..606957eaa9f239 100644 --- a/files/zh-cn/web/javascript/reference/classes/constructor/index.html +++ b/files/zh-cn/web/javascript/reference/classes/constructor/index.html @@ -19,7 +19,7 @@

    语法

    描述

    -

    在一个类中只能有一个名为 “constructor” 的特殊方法。 一个类中出现多次构造函数 (constructor)方法将会抛出一个 {{jsxref("SyntaxError")}} 错误。

    +

    在一个类中只能有一个名为“constructor”的特殊方法。一个类中出现多次构造函数 (constructor)方法将会抛出一个 {{jsxref("SyntaxError")}} 错误。

    在一个构造方法中可以使用super关键字来调用一个父类的构造方法。

    diff --git a/files/zh-cn/web/javascript/reference/classes/index.html b/files/zh-cn/web/javascript/reference/classes/index.html index a0394853b8be6a..07a84946344fe8 100644 --- a/files/zh-cn/web/javascript/reference/classes/index.html +++ b/files/zh-cn/web/javascript/reference/classes/index.html @@ -16,7 +16,7 @@
    {{JsSidebar("Classes")}}
    -

    类是用于创建对象的模板。他们用代码封装数据以处理该数据。 JS 中的类建立在原型上,但也具有某些语法和语义未与 ES5 类相似语义共享。

    +

    类是用于创建对象的模板。他们用代码封装数据以处理该数据。JS 中的类建立在原型上,但也具有某些语法和语义未与 ES5 类相似语义共享。

    定义类

    @@ -64,7 +64,7 @@

    类表达式

    } }; console.log(Rectangle.name); -// 输出: "Rectangle2"

    +// 输出:"Rectangle2"

    备注: 类表达式也同样受到类声明部分中提到的类型提升的限制。

    @@ -80,7 +80,7 @@

    严格模式

    构造函数

    -

    constructor方法是一个特殊的方法,这种方法用于创建和初始化一个由class创建的对象。一个类只能拥有一个名为 “constructor”的特殊方法。如果类包含多个constructor的方法,则将抛出 一个{{jsxref("SyntaxError")}} 。

    +

    constructor方法是一个特殊的方法,这种方法用于创建和初始化一个由class创建的对象。一个类只能拥有一个名为“constructor”的特殊方法。如果类包含多个constructor的方法,则将抛出 一个{{jsxref("SyntaxError")}} 。

    一个构造函数可以使用 super 关键字来调用一个父类的构造函数。

    @@ -364,7 +364,7 @@

    使用 super 调用超类

    Mix-ins / 混入

    -

    抽象子类或者 mix-ins 是类的模板。 一个 ECMAScript 类只能有一个单超类,所以想要从工具类来多重继承的行为是不可能的。子类继承的只能是父类提供的功能性。因此,例如,从工具类的多重继承是不可能的。该功能必须由超类提供。

    +

    抽象子类或者 mix-ins 是类的模板。一个 ECMAScript 类只能有一个单超类,所以想要从工具类来多重继承的行为是不可能的。子类继承的只能是父类提供的功能性。因此,例如,从工具类的多重继承是不可能的。该功能必须由超类提供。

    一个以超类作为输入的函数和一个继承该超类的子类作为输出可以用于在 ECMAScript 中实现混合:

    diff --git a/files/zh-cn/web/javascript/reference/classes/public_class_fields/index.html b/files/zh-cn/web/javascript/reference/classes/public_class_fields/index.html index 1945c026debffc..23e36c1039a005 100644 --- a/files/zh-cn/web/javascript/reference/classes/public_class_fields/index.html +++ b/files/zh-cn/web/javascript/reference/classes/public_class_fields/index.html @@ -29,7 +29,7 @@

    静态公有字段

    } console.log(ClassWithStaticField.staticField); -// 预期输出值: "static field"​ +// 预期输出值:"static field"​

    没有设定初始化程序的字段将默认被初始化为undefined

    @@ -40,7 +40,7 @@

    静态公有字段

    console.assert(ClassWithStaticField.hasOwnProperty('staticField')); console.log(ClassWithStaticField.staticField); -// 预期输出值: "undefined"

    +// 预期输出值:"undefined"

    静态公有字段不会在子类里重复初始化,但我们可以通过原型链访问它们。

    @@ -53,10 +53,10 @@

    静态公有字段

    } console.log(SubClassWithStaticField.subStaticField); -// 预期输出值: "sub class field" +// 预期输出值:"sub class field" console.log(SubClassWithStaticField.baseStaticField); -// 预期输出值: "base field" +// 预期输出值:"base field"

    当初始化字段时,this指向的是类的构造函数。你可以通过名字引用构造函数,并使用super获取到存在的超类构造函数。

    @@ -72,10 +72,10 @@

    静态公有字段

    } console.log(ClassWithStaticField.anotherBaseStaticField); -// 预期输出值: "base static field" +// 预期输出值:"base static field" console.log(SubClassWithStaticField.subStaticField); -// 预期输出值: "base static method output" +// 预期输出值:"base static method output"

    公有实例字段

    @@ -90,7 +90,7 @@

    公有实例字段

    const instance = new ClassWithInstanceField(); console.log(instance.instanceField); -// 预期输出值: "instance field" +// 预期输出值:"instance field"

    没有设定初始化程序的字段将默认被初始化为undefined

    @@ -101,7 +101,7 @@

    公有实例字段

    const instance = new ClassWithInstanceField(); console.assert(instance.hasOwnProperty('instanceField')); console.log(instance.instanceField); -// 预期输出值: "undefined" +// 预期输出值:"undefined"

    和属性(properties)一样,字段名可以由计算得出。

    @@ -113,7 +113,7 @@

    公有实例字段

    const instance = new ClassWithComputedFieldName(); console.log(instance.prefixField); -// 预期输出值: "prefixed field" +// 预期输出值:"prefixed field"

    当初始化字段时,this指向的是类正在构造中的实例。和公共实例方法相同的是:你可以在子类中使用super来访问超类的原型。

    @@ -131,10 +131,10 @@

    公有实例字段

    const sub = new SubClassWithInstanceField(); console.log(base.anotherBaseInstanceField); -// 预期输出值: "base field" +// 预期输出值:"base field" console.log(sub.subInstanceField); -// 预期输出值: "base method output" +// 预期输出值:"base method output"

    公共方法

    @@ -158,7 +158,7 @@

    公共实例方法

    const instance = new ClassWithPublicInstanceMethod(); console.log(instance.publicMethod()); -// 预期输出值: "hello worl​d" +// 预期输出值:"hello worl​d"

    公共实例方法是在类的赋值阶段用Object.defineProperty方法添加到类中的。静态方法是可编辑的、不可遍历的和可配置的。

    @@ -187,7 +187,7 @@

    公共实例方法

    const instance = new SubClass(); console.log(instance.subPublicMethod()); -// 预期输出值: "hello worl​d" +// 预期输出值:"hello worl​d"

    gettersetter是和类的属性绑定的特殊方法,分别会在其绑定的属性被取值、赋值时调用。使用getset句法定义实例的公共gettersetter

    @@ -208,7 +208,7 @@

    公共实例方法

    instance.msg = 'cake'; console.log(instance.msg); -// 预期输出值: "hello cake" +// 预期输出值:"hello cake"

    私有字段

    @@ -306,7 +306,7 @@

    私有实例方法

    const instance = new ClassWithPrivateMethod(); console.log(instance.getPrivateMessage()); -// 预期输出值: "hello worl​d" +// 预期输出值:"hello worl​d"

    私有实例方法可以是生成器、异步或者异步生成器函数。私有gettersetter也是可能的:

    @@ -327,7 +327,7 @@

    私有实例方法

    } new ClassWithPrivateAccessor(); -// 预期输出值: "✨hello worl​d✨" +// 预期输出值:"✨hello worl​d✨"

    浏览器兼容性

    diff --git a/files/zh-cn/web/javascript/reference/classes/static/index.html b/files/zh-cn/web/javascript/reference/classes/static/index.html index 364de42af8d733..0bfb96310fdb46 100644 --- a/files/zh-cn/web/javascript/reference/classes/static/index.html +++ b/files/zh-cn/web/javascript/reference/classes/static/index.html @@ -71,7 +71,7 @@

    示例

    1. 静态方法如何在类上实现。
    2. -
    3. 具有静态成员的类,可以被子类化 。
    4. +
    5. 具有静态成员的类,可以被子类化。
    6. 什么情况下静态方法可以调用,什么情况下不能调用。
    diff --git a/files/zh-cn/web/javascript/reference/errors/already_has_pragma/index.html b/files/zh-cn/web/javascript/reference/errors/already_has_pragma/index.html index 28bf001e5958b5..886910ff07bc65 100644 --- a/files/zh-cn/web/javascript/reference/errors/already_has_pragma/index.html +++ b/files/zh-cn/web/javascript/reference/errors/already_has_pragma/index.html @@ -17,7 +17,7 @@

    哪里有问题?

    对于给定的 JavaScript 源码,源码映射规定了不止一次。

    -

    JavaScript 源码通常被组合和压缩,使其从服务器传递更加高效。 使用了源码映射,调试器能够将执行的源码映射到原始的源码。 有两种指派源码映射的方式,通过注释,或者对 JavaScript 设置标题。

    +

    JavaScript 源码通常被组合和压缩,使其从服务器传递更加高效。使用了源码映射,调试器能够将执行的源码映射到原始的源码。有两种指派源码映射的方式,通过注释,或者对 JavaScript 设置标题。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html b/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html index 1e36a970d180b7..184305a58b33bd 100644 --- a/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html +++ b/files/zh-cn/web/javascript/reference/errors/bad_octal/index.html @@ -24,7 +24,7 @@

    哪里出错了?

    十进制字面量可以以零作为开始 (0),后面跟着其他十进制数,但是假如前导 0 之后的所有数字都小于 8,那么这个数就会被解析为一个八进制的数。因为 08 和 09 不是这样的,所以 JavaScript 会发出警告。

    -

    请注意,不推荐使用八进制字面值和八进制转义序列,并会产生另外的弃用警告。 在 ECMAScript 6 和更高版本里,语法使用前导零后跟小写或大写拉丁字母“O”(0o 或 0O)。更多信息请查看 lexical grammar

    +

    请注意,不推荐使用八进制字面值和八进制转义序列,并会产生另外的弃用警告。在 ECMAScript 6 和更高版本里,语法使用前导零后跟小写或大写拉丁字母“O”(0o 或 0O)。更多信息请查看 lexical grammar

    备注:现在仅 firefox 会产生此错误。

    diff --git a/files/zh-cn/web/javascript/reference/errors/bad_return_or_yield/index.html b/files/zh-cn/web/javascript/reference/errors/bad_return_or_yield/index.html index ea6569bcef3ed9..dbacebd5d4d6b2 100644 --- a/files/zh-cn/web/javascript/reference/errors/bad_return_or_yield/index.html +++ b/files/zh-cn/web/javascript/reference/errors/bad_return_or_yield/index.html @@ -33,7 +33,7 @@

    范例

    // SyntaxError: return not in function // 语法错误:不是在函数里返回 -

    初次看好像没什么错误,但是上面这段代码在第一个 if 后面少了一个 “ { ”。正确的应该如下:

    +

    初次看好像没什么错误,但是上面这段代码在第一个 if 后面少了一个“ { ”。正确的应该如下:

    var cheer = function(score) {
       if (score === 147) {
    diff --git a/files/zh-cn/web/javascript/reference/errors/cant_access_property/index.html b/files/zh-cn/web/javascript/reference/errors/cant_access_property/index.html
    index 627b71de96025a..4fcf72c7604ceb 100644
    --- a/files/zh-cn/web/javascript/reference/errors/cant_access_property/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/cant_access_property/index.html
    @@ -31,7 +31,7 @@ 

    例子

    无效情形

    -
    // 对于 undefined 以及 null 值, substring 方法无法正常工作
    +
    // 对于 undefined 以及 null 值,substring 方法无法正常工作
     var foo = undefined;
     foo.substring(1); // TypeError: x is undefined, can't access property "substring" of it
     
    diff --git a/files/zh-cn/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.html b/files/zh-cn/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.html
    index 6d3d074a8e2d8c..838053c0e3f0f2 100644
    --- a/files/zh-cn/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/cant_define_property_object_not_extensible/index.html
    @@ -28,7 +28,7 @@ 

    哪里出错了?

    示例

    -

    严格模式下,向已经标记为不可扩展的对象添加新属性会报 TypeError 错误。而在非严格模式下,添加属性 “x” 会被静默忽略。

    +

    严格模式下,向已经标记为不可扩展的对象添加新属性会报 TypeError 错误。而在非严格模式下,添加属性“x”会被静默忽略。

    'use strict';
     
    diff --git a/files/zh-cn/web/javascript/reference/errors/delete_in_strict_mode/index.html b/files/zh-cn/web/javascript/reference/errors/delete_in_strict_mode/index.html
    index aa9a3293aee9ae..2fab6052e6df6f 100644
    --- a/files/zh-cn/web/javascript/reference/errors/delete_in_strict_mode/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/delete_in_strict_mode/index.html
    @@ -27,7 +27,7 @@ 

    哪里出错了?

    delete 操作符只能用于删除对象中的属性。只有可配置的对象属性才“符合”被删除的条件。

    -

    与一般流行的观点相反的是, delete 操作符与直接释放内存无关。内存管理是通过切断引用来间接实现的。可以参考内存管理页面与 delete 操作符页面来获取更多的细节信息。

    +

    与一般流行的观点相反的是,delete 操作符与直接释放内存无关。内存管理是通过切断引用来间接实现的。可以参考内存管理页面与 delete 操作符页面来获取更多的细节信息。

    这个错误提示只出现于严格模式。在非严格模式下,该操作返回 false。

    diff --git a/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html b/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html index 7e566ab847fa38..18a494cf45b3a2 100644 --- a/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html +++ b/files/zh-cn/web/javascript/reference/errors/equal_as_assign/index.html @@ -18,7 +18,7 @@

    错误类型

    什么地方出错了?

    -

    在通常期望进行相等判定(==)的地方出现了赋值(=)。 为了帮助调试,JavaScript(在开启严格模式的情况下)会对这种情况进行警告。

    +

    在通常期望进行相等判定(==)的地方出现了赋值(=)。为了帮助调试,JavaScript(在开启严格模式的情况下)会对这种情况进行警告。

    示例

    @@ -31,13 +31,13 @@

    条件表达式内的赋值

    }
    -

    如果你需要在条件表达式中使用赋值语句, 通常的做法是用一对括号把赋值语句包起来。 例如:

    +

    如果你需要在条件表达式中使用赋值语句,通常的做法是用一对括号把赋值语句包起来。例如:

    if ((x = y)) {
       // do the right thing
     }
    -

    否则, 你的本意可能是想用比较操作符(如 =====):

    +

    否则,你的本意可能是想用比较操作符(如 =====):

    if (x == y) {
       // do the right thing
    diff --git a/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html b/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html
    index a45f174c6100d5..9228e4c7236e5b 100644
    --- a/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/for-each-in_loops_are_deprecated/index.html
    @@ -9,7 +9,7 @@
     
     

    消息

    -
    警告: JavaScript 1.6's 版本的 for-each-in 遍历不再赞成使用; 建议用 ES6 的 for-of 替换
    +
    警告:JavaScript 1.6's 版本的 for-each-in 遍历不再赞成使用; 建议用 ES6 的 for-of 替换
     

    错误类型

    diff --git a/files/zh-cn/web/javascript/reference/errors/index.html b/files/zh-cn/web/javascript/reference/errors/index.html index f0c0f2560a991c..23e936239ea498 100644 --- a/files/zh-cn/web/javascript/reference/errors/index.html +++ b/files/zh-cn/web/javascript/reference/errors/index.html @@ -17,7 +17,7 @@

    错误列表

    -

    在此列表中,每个页面按名称(错误类型)和信息(更详细的容易理解的错误信息)列出。 总之,这两者提供了理解和解决错误的线索。 有关更多信息,请按照以下链接!

    +

    在此列表中,每个页面按名称(错误类型)和信息(更详细的容易理解的错误信息)列出。总之,这两者提供了理解和解决错误的线索。有关更多信息,请按照以下链接!

    {{ListSubPages("/zh-CN/docs/Web/JavaScript/Reference/Errors")}}

    diff --git a/files/zh-cn/web/javascript/reference/errors/invalid_for-in_initializer/index.html b/files/zh-cn/web/javascript/reference/errors/invalid_for-in_initializer/index.html index 34dcefa8ed1c88..efe6d6a5ae5f99 100644 --- a/files/zh-cn/web/javascript/reference/errors/invalid_for-in_initializer/index.html +++ b/files/zh-cn/web/javascript/reference/errors/invalid_for-in_initializer/index.html @@ -22,7 +22,7 @@

    错误类型

    哪里出错了?

    -

    在 for...in 循环的头部存在初始化表达式。 也就是存在变量声明并且被赋值,例如 |for (var i = 0 in obj)|。在非严格模式下,这种在循环头部的变量声明会被静默忽略,语句的表现形式与 |for (var i in obj)|相同。而在严格模式下,会报语法错误。

    +

    在 for...in 循环的头部存在初始化表达式。也就是存在变量声明并且被赋值,例如 |for (var i = 0 in obj)|。在非严格模式下,这种在循环头部的变量声明会被静默忽略,语句的表现形式与 |for (var i in obj)|相同。而在严格模式下,会报语法错误。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html b/files/zh-cn/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html index 2ce2214034a399..b1e0d8e3454ad5 100644 --- a/files/zh-cn/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html +++ b/files/zh-cn/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html @@ -33,7 +33,7 @@

    例子

    x instanceof x; // TypeError: x is not a function
    -

    为了解决上述问题, 你可能需要将instanceof 操作符 换成 typeof 操作符, 或者确保你使用的是函数名称,而不是函数计算的结果。

    +

    为了解决上述问题,你可能需要将instanceof 操作符 换成 typeof 操作符, 或者确保你使用的是函数名称,而不是函数计算的结果。

    typeof "test" == "string"; // true
     typeof 42 == "number"      // true
    diff --git a/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html b/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html
    index bbc9b0c1271da4..0af2e0ed29b34e 100644
    --- a/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/is_not_iterable/index.html
    @@ -78,7 +78,7 @@ 

    Iterating over a generator

    console.log(x);
    -

    当它没有被调用,这个 {{jsxref("Function")}} 相应的是可调用的,但是不可迭代。 调用 generator 生成一个可迭代对象,该对象将迭代在生成器执行期间生成的值。

    +

    当它没有被调用,这个 {{jsxref("Function")}} 相应的是可调用的,但是不可迭代。调用 generator 生成一个可迭代对象,该对象将迭代在生成器执行期间生成的值。

    function* generate(a, b) {
         yield a;
    diff --git a/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html b/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html
    index 821b9df3066290..74f59691bd1879 100644
    --- a/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/malformed_formal_parameter/index.html
    @@ -22,11 +22,11 @@ 

    哪里错了?

    在至少带有两个参数的 Function() 构造器中它的最后一个参数是创建的新函数的源代码。剩下的都是新函数的参数。

    -

    构造器的参数有些情况下是无效的。 也许是你不小心用了一个关键字 if 或 var 作为参数名称,或者在参数列表中有一些杂乱的标点符号。 或者也许你不小心传递了一个无效的值,比如数字或对象。

    +

    构造器的参数有些情况下是无效的。也许是你不小心用了一个关键字 if 或 var 作为参数名称,或者在参数列表中有一些杂乱的标点符号。或者也许你不小心传递了一个无效的值,比如数字或对象。

    好吧,这解决了我的问题。但是为什么不开始就说明白呢?

    -

    诚然,错误信息中的措辞稍微有些奇怪。"Formal parameter" 是 "function argument" 的另一种优美的同义。 我们使用 “malformed”(即畸形)这个词,因为所有的 Firefox 工程师都是 19 世纪哥特式恐怖小说的巨星。

    +

    诚然,错误信息中的措辞稍微有些奇怪。"Formal parameter" 是 "function argument" 的另一种优美的同义。我们使用“malformed”(即畸形)这个词,因为所有的 Firefox 工程师都是 19 世纪哥特式恐怖小说的巨星。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html b/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html index c5102f16515ccf..d863589ea9b4c5 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_curly_after_property_list/index.html @@ -20,7 +20,7 @@

    错误类型

    哪里出错了?

    -

    对象初始化的时候语法出错了。可能是遗漏了一个大括号,也可能是遗漏了逗号。还要检查是否以正确的顺序关闭了大括号或括号。 缩进或格式化代码也许可以更好帮助你看清这些芜杂的。

    +

    对象初始化的时候语法出错了。可能是遗漏了一个大括号,也可能是遗漏了逗号。还要检查是否以正确的顺序关闭了大括号或括号。缩进或格式化代码也许可以更好帮助你看清这些芜杂的。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html b/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html index 467438e1d1d237..c990740b4e759c 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_formal_parameter/index.html @@ -21,7 +21,7 @@

    错误类型

    哪里出错了?

    -

    “形式参数” 是 “函数参数”一种更好的说法。函数声明缺少合法的参数定义。在函数声明中,参数定义必须为标记符({{Glossary("Identifier", "identifiers")}}), 而不是任何类似于数字、字符串或者对象的值。函数声明和函数调用是两个不同的步骤。函数声明中的参数需要使用标记符,而仅仅在函数被呼叫(调用)的时候才可以传入其所需要的值。

    +

    “形式参数”是 “函数参数”一种更好的说法。函数声明缺少合法的参数定义。在函数声明中,参数定义必须为标记符({{Glossary("Identifier", "identifiers")}}), 而不是任何类似于数字、字符串或者对象的值。函数声明和函数调用是两个不同的步骤。函数声明中的参数需要使用标记符,而仅仅在函数被呼叫(调用)的时候才可以传入其所需要的值。

    在 {{glossary("JavaScript")}} 中,标记符只能由字母、数字、"$" 以及 "_" 构成,并且不能以数字开头。标记符与字符串的区别在于字符串是数据,而标记符属于代码的一部分。

    diff --git a/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html b/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html index ccc1293d987484..63b2ec7e82a5c5 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html @@ -24,13 +24,13 @@

    什么地方出错了?

    示例

    -

    因为没有使用 ”+“ 操作符来连接字符串,JavaScript 认为 log 函数的参数的值只是 “PI: ”,在这种情况下,它应该用一个右括号作为结束。

    +

    因为没有使用” + “ 操作符来连接字符串,JavaScript 认为 log 函数的参数的值只是“PI: ”,在这种情况下,它应该用一个右括号作为结束。

    console.log("PI: " Math.PI);
     // SyntaxError: missing ) after argument list
     
    -

    你可以正确的调用 log 函数通过加上 ”+“ 操作符。

    +

    你可以正确的调用 log 函数通过加上”+“操作符。

    console.log("PI: " + Math.PI);
     // "PI: 3.141592653589793"
    diff --git a/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html b/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html index f1dcecc9272ca0..e49a814ddd97df 100644 --- a/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html +++ b/files/zh-cn/web/javascript/reference/errors/missing_semicolon_before_statement/index.html @@ -18,7 +18,7 @@

    错误类型

    哪里出错了?

    -

    某个地方丢失了一个 (;)。 JavaScript 语句必须以分号结束。 有一些是由 自动分号插入 (ASI) 的使用所影响到的, 但在这种情况下,你需要提供一个分号,以便于 JavaScript 可以将源代码解析正确。然而,通常情况下,这个错误只是另一个错误一个导致的,如不正确转义字符串,使用 var 的错误。你也可能有太多的括号的地方。当出现此错误时,仔细检查语法。

    +

    某个地方丢失了一个 (;)。 JavaScript 语句必须以分号结束。有一些是由 自动分号插入 (ASI) 的使用所影响到的,但在这种情况下,你需要提供一个分号,以便于 JavaScript 可以将源代码解析正确。然而,通常情况下,这个错误只是另一个错误一个导致的,如不正确转义字符串,使用 var 的错误。你也可能有太多的括号的地方。当出现此错误时,仔细检查语法。

    例子

    diff --git a/files/zh-cn/web/javascript/reference/errors/no_properties/index.html b/files/zh-cn/web/javascript/reference/errors/no_properties/index.html index 36251db019d7c7..dbba0929ed0097 100644 --- a/files/zh-cn/web/javascript/reference/errors/no_properties/index.html +++ b/files/zh-cn/web/javascript/reference/errors/no_properties/index.html @@ -22,10 +22,10 @@

    哪里出错了?

    例子

    null.foo;
    -// 错误类型: null 没有这个属性
    +// 错误类型:null 没有这个属性
     
     undefined.bar;
    -// 错误类型: undefined 没有这个属性
    +// 错误类型:undefined 没有这个属性
     

    参考

    diff --git a/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html b/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html index d444e872d5131a..0bd15b0db705f0 100644 --- a/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html +++ b/files/zh-cn/web/javascript/reference/errors/not_a_constructor/index.html @@ -55,7 +55,7 @@

    无效的

    一个构造器

    -

    假设你想为汽车创建一个对象类型。 你希望此类型的对象被称为 car,并且您希望它具有 make,model 和 year 属性。 为此,你编写以下函数:

    +

    假设你想为汽车创建一个对象类型。你希望此类型的对象被称为 car,并且您希望它具有 make,model 和 year 属性。为此,你编写以下函数:

    function Car(make, model, year) {
       this.make = make;
    diff --git a/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html b/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html
    index 732caca10e7e99..53234ac91664a3 100644
    --- a/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/not_a_function/index.html
    @@ -24,9 +24,9 @@ 

    哪里出错了?

    问题出在你试图去调用一个像函数一样的值,但是该值实际上不是函数,有时候你的代码需要调用一些函数,但是那种值并不能当作函数来被调用。

    -

    也许函数名称上有错别字? 也许你正在调用 Object 对象没有这个方法? 例如,在 JavaScript 中单纯的对象 (Object) 没有map函数,但是 JavaScript 数组 (Array) 对象却有这个函数。

    +

    也许函数名称上有错别字?也许你正在调用 Object 对象没有这个方法?例如,在 JavaScript 中单纯的对象 (Object) 没有map函数,但是 JavaScript 数组 (Array) 对象却有这个函数。

    -

    再比如,在 JavaScript 中很多原生对象的内置方法需要你提供一个(回调)函数。 所以你必须提供一个函数,以使这些方法正常工作:

    +

    再比如,在 JavaScript 中很多原生对象的内置方法需要你提供一个(回调)函数。所以你必须提供一个函数,以使这些方法正常工作:

    • 当你在使用 {{jsxref("Array")}} 或 {{jsxref("TypedArray")}} 对象时: diff --git a/files/zh-cn/web/javascript/reference/errors/not_defined/index.html b/files/zh-cn/web/javascript/reference/errors/not_defined/index.html index ace42786e0012d..7920fc245c9fbd 100644 --- a/files/zh-cn/web/javascript/reference/errors/not_defined/index.html +++ b/files/zh-cn/web/javascript/reference/errors/not_defined/index.html @@ -29,7 +29,7 @@

      变量没有被声明

      foo.substring(1); // ReferenceError: foo is not defined
       
      -

      “foo” 变量没有在任何地方被声明。它需要是某种字符串,这样 {{jsxref("String.prototype.substring()")}} 方法才可以正常工作。

      +

      “foo”变量没有在任何地方被声明。它需要是某种字符串,这样 {{jsxref("String.prototype.substring()")}} 方法才可以正常工作。

      var foo = 'bar';
       foo.substring(1); // "ar"
      diff --git a/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html b/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html index b7283bb1622428..4338e6606bd260 100644 --- a/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html +++ b/files/zh-cn/web/javascript/reference/errors/redeclared_parameter/index.html @@ -35,7 +35,7 @@

      示例

      // SyntaxError: redeclaration of formal parameter "arg"
    -

    如果要更改函数体中的“arg”的值,可以像下面一样,但不需要再次声明同一个变量。 换句话说:你可以省略 let 关键字。 如果要创建一个新变量,则需要将其重命名,因为其与函数参数有冲突。

    +

    如果要更改函数体中的“arg”的值,可以像下面一样,但不需要再次声明同一个变量。换句话说:你可以省略 let 关键字。如果要创建一个新变量,则需要将其重命名,因为其与函数参数有冲突。

    function f(arg) {
       arg = "foo";
    diff --git a/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html b/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html
    index 10bc79071b1457..aaab4a0a64b1eb 100644
    --- a/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/resulting_string_too_large/index.html
    @@ -25,7 +25,7 @@ 

    发生了什么?

    代码中使用了 {{jsxref("String.prototype.repeat()")}}方法。它有一个计数参数,表示重复该字符串的次数。该参数必须在 0 及正 {{jsxref("Infinity")}} 之间,且不能为负数。该值的合法范围可以这样表示: [0, +∞)。

    -

    其结果字符串也不能长于最大字符串,不同 JavaScript 引擎中可能有所不同。 在 Firefox (SpiderMonkey) 里最大字符串大小为 2^28 -1 (0xFFFFFFF)。

    +

    其结果字符串也不能长于最大字符串,不同 JavaScript 引擎中可能有所不同。在 Firefox (SpiderMonkey) 里最大字符串大小为 2^28 -1 (0xFFFFFFF)。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html b/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html index cfbdeab40c36cc..cd731c52efeef8 100644 --- a/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html +++ b/files/zh-cn/web/javascript/reference/errors/strict_non_simple_params/index.html @@ -14,9 +14,9 @@

    信息

    Firefox:
    -句法错误: "use strict" 不允许在带默认参数的函数中
    -句法错误: "use strict" 不允许在带 rest 参数的函数中
    -句法错误: "use strict" 不允许在带解构参数的函数中
    +句法错误:"use strict" 不允许在带默认参数的函数中
    +句法错误:"use strict" 不允许在带 rest 参数的函数中
    +句法错误:"use strict" 不允许在带解构参数的函数中
     
     Chrome:
     句法错误:非法的'use strict'指令,在带有非简单参数列表的函数中
    diff --git a/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html b/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html
    index 960f76d1188cc0..cb7fb5478d9817 100644
    --- a/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/unexpected_token/index.html
    @@ -25,13 +25,13 @@ 

    错误类型

    哪里出错了?

    -

    期望获得一个特定的语法结构,但得到了其他的。 可能只是一个简单的错字。

    +

    期望获得一个特定的语法结构,但得到了其他的。可能只是一个简单的错字。

    示例

    期望的表达式

    -

    例如,在调用函数时,不允许使用尾随逗号。 有尾逗号的时候,JavaScript 会期望有另一个参数,可以是任何表达式。

    +

    例如,在调用函数时,不允许使用尾随逗号。有尾逗号的时候,JavaScript 会期望有另一个参数,可以是任何表达式。

    Math.max(2, 42,);
     // SyntaxError: expected expression, got ')'
    diff --git a/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html b/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html
    index a2a4849ac6cb2d..99526a362d0c1b 100644
    --- a/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.html
    @@ -25,9 +25,9 @@ 

    错误类型

    什么地方出错了?

    -

    出现了与期望不符的类型。 这个错误常常由 {{jsxref("undefined")}} 或 {{jsxref("null")}} 值引起。

    +

    出现了与期望不符的类型。这个错误常常由 {{jsxref("undefined")}} 或 {{jsxref("null")}} 值引起。

    -

    此外,某些方法,例如 {{jsxref("Object.create()")}} 或 {{jsxref("Symbol.keyFor()")}}, 要求必须提供特定类型的参数。

    +

    此外,某些方法,例如 {{jsxref("Object.create()")}} 或 {{jsxref("Symbol.keyFor()")}},要求必须提供特定类型的参数。

    示例

    @@ -51,7 +51,7 @@

    错误情形

    解决方法

    -

    要解决空指针以及 undefinednull 值的问题, 你可以使用 typeof 操作符, 例如:

    +

    要解决空指针以及 undefinednull 值的问题,你可以使用 typeof 操作符,例如:

    if (typeof foo !== 'undefined') {
       // Now we know that foo is defined, we are good to go.
    diff --git a/files/zh-cn/web/javascript/reference/errors/var_hides_argument/index.html b/files/zh-cn/web/javascript/reference/errors/var_hides_argument/index.html
    index 01aa0260fe2f6c..e003a533689ebc 100644
    --- a/files/zh-cn/web/javascript/reference/errors/var_hides_argument/index.html
    +++ b/files/zh-cn/web/javascript/reference/errors/var_hides_argument/index.html
    @@ -16,7 +16,7 @@ 

    错误类型

    哪里有问题?

    -

    函数参数中出现了名称相同的变量,之后在函数体中使用 var 赋值语句重新声明。 这可能是一个命名冲突,所以 JavaScript 警告了它。

    +

    函数参数中出现了名称相同的变量,之后在函数体中使用 var 赋值语句重新声明。这可能是一个命名冲突,所以 JavaScript 警告了它。

    这个错误只在 严格模式的代码 中作为警告出现。在非严格模式的代码中,重新声明会被忽略。

    diff --git a/files/zh-cn/web/javascript/reference/functions/arguments/index.html b/files/zh-cn/web/javascript/reference/functions/arguments/index.html index 95bf82cdcf85a3..3d9abb8cf3bd59 100644 --- a/files/zh-cn/web/javascript/reference/functions/arguments/index.html +++ b/files/zh-cn/web/javascript/reference/functions/arguments/index.html @@ -26,7 +26,7 @@

    描述

    -

    备注: “类数组” 意味着 arguments 有 {{jsxref("Functions/arguments/length", "长度")}} 属性 并且属性的索引是从零开始的,但是它没有 {{JSxRef("Array")}}的 内置方法, 例如 {{jsxref("Array.forEach", "forEach()")}} 和 {{jsxref("Array.map", "map()")}}都是没有的。详情可以看 §Description.

    +

    备注: “类数组”意味着 arguments 有 {{jsxref("Functions/arguments/length", "长度")}} 属性 并且属性的索引是从零开始的,但是它没有 {{JSxRef("Array")}}的 内置方法,例如 {{jsxref("Array.forEach", "forEach()")}} 和 {{jsxref("Array.map", "map()")}}都是没有的。详情可以看 §Description.

    arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引 0 处。例如,如果一个函数传递了三个参数,你可以以如下方式引用他们:

    diff --git a/files/zh-cn/web/javascript/reference/functions/arrow_functions/index.html b/files/zh-cn/web/javascript/reference/functions/arrow_functions/index.html index 337f62c4f15feb..06ffec26dd5884 100644 --- a/files/zh-cn/web/javascript/reference/functions/arrow_functions/index.html +++ b/files/zh-cn/web/javascript/reference/functions/arrow_functions/index.html @@ -186,7 +186,7 @@

    不绑定arguments

    arr(); // 1 function foo(n) { - var f = () => arguments[0] + n; // 隐式绑定 foo 函数的 arguments 对象. arguments[0] 是 n,即传给 foo 函数的第一个参数 + var f = () => arguments[0] + n; // 隐式绑定 foo 函数的 arguments 对象。arguments[0] 是 n,即传给 foo 函数的第一个参数 return f(); } @@ -302,7 +302,7 @@

    换行

    => 1; // SyntaxError: expected expression, got '=>' -

    但是,可以通过在 ‘=>’ 之后换行,或者用 ‘( )’、'{ }'来实现换行,如下:

    +

    但是,可以通过在‘=>’之后换行,或者用‘( )’、'{ }'来实现换行,如下:

    var func = (a, b, c) =>
       1;
    @@ -431,7 +431,7 @@ 

    箭头函数也可以使用闭包 v(); //2 -//箭头函数体的闭包( i=0 是默认参数) +//箭头函数体的闭包(i=0 是默认参数) var Add = (i=0) => {return (() => (++i) )}; var v = Add(); v(); //1 diff --git a/files/zh-cn/web/javascript/reference/functions/get/index.html b/files/zh-cn/web/javascript/reference/functions/get/index.html index 3f74feb6420f69..77e43184d91aa8 100644 --- a/files/zh-cn/web/javascript/reference/functions/get/index.html +++ b/files/zh-cn/web/javascript/reference/functions/get/index.html @@ -92,7 +92,7 @@

    使用计算出的属性名

    智能 / 自我复写/ 懒加载 getters

    -

    Getters 给你一种方法来定义一个对象的属性,但是在访问它们之前不会计算属性的值。 getter 延迟计算值的成本,直到需要此值,如果不需要,您就不用支付成本。

    +

    Getters 给你一种方法来定义一个对象的属性,但是在访问它们之前不会计算属性的值。getter 延迟计算值的成本,直到需要此值,如果不需要,您就不用支付成本。

    一种额外的优化技术是用智能 (或称记忆化)getters 延迟属性值的计算并将其缓存以备以后访问。该值是在第一次调用 getter 时计算的,然后被缓存,因此后续访问返回缓存值而不重新计算它。这在以下情况下很有用:

    diff --git a/files/zh-cn/web/javascript/reference/functions/index.html b/files/zh-cn/web/javascript/reference/functions/index.html index fc503da00fff1a..1f0464e823fd28 100644 --- a/files/zh-cn/web/javascript/reference/functions/index.html +++ b/files/zh-cn/web/javascript/reference/functions/index.html @@ -157,7 +157,7 @@

    箭头函数表达式 (=>)

    param
    -
    参数名称。零参数需要用 () 表示.  只有一个参数时不需要括号. (例如 foo => 1)
    +
    参数名称。零参数需要用 () 表示.  只有一个参数时不需要括号。(例如 foo => 1)
    statements or expression
    多个声明 statements 需要用大括号括起来,而单个表达式时则不需要。表达式 expression 也是该函数的隐式返回值。
    diff --git a/files/zh-cn/web/javascript/reference/functions/set/index.html b/files/zh-cn/web/javascript/reference/functions/set/index.html index da011b8936b60f..b03b64985d5d9a 100644 --- a/files/zh-cn/web/javascript/reference/functions/set/index.html +++ b/files/zh-cn/web/javascript/reference/functions/set/index.html @@ -41,7 +41,7 @@

    描述

    • 它的标识符可以是数字或字符串;
    • 它必须有一个明确的参数 (详见 Incompatible ES5 change: literal getter and setter functions must now have exactly zero or one arguments);
    • -
    • 在对象字面量中,不能为一个已有真实值的变量使用 set ,也不能为一个属性设置多个 set。
      +
    • 在对象字面量中,不能为一个已有真实值的变量使用 set,也不能为一个属性设置多个 set。
      ( { set x(v) { }, set x(v) { } }{ x: ..., set x(v) { } } 是不允许的 )
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/concat/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/concat/index.html index b612dc454f81f8..de7896e004844e 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/concat/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/array/concat/index.html @@ -33,10 +33,10 @@

    描述

    concat方法创建一个新的数组,它由被调用的对象中的元素组成,每个参数的顺序依次是该参数的元素(如果参数是数组)或参数本身(如果参数不是数组)。它不会递归到嵌套数组参数中。

    -

    concat方法不会改变this或任何作为参数提供的数组,而是返回一个浅拷贝,它包含与原始数组相结合的相同元素的副本。 原始数组的元素将复制到新数组中,如下所示:

    +

    concat方法不会改变this或任何作为参数提供的数组,而是返回一个浅拷贝,它包含与原始数组相结合的相同元素的副本。原始数组的元素将复制到新数组中,如下所示:

      -
    • 对象引用(而不是实际对象):concat将对象引用复制到新数组中。 原始数组和新数组都引用相同的对象。 也就是说,如果引用的对象被修改,则更改对于新数组和原始数组都是可见的。 这包括也是数组的数组参数的元素。
    • +
    • 对象引用(而不是实际对象):concat将对象引用复制到新数组中。原始数组和新数组都引用相同的对象。也就是说,如果引用的对象被修改,则更改对于新数组和原始数组都是可见的。这包括也是数组的数组参数的元素。
      diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/findindex/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/findindex/index.html index 64c87a4c3b58a3..e77868eff3357e 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/findindex/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/array/findindex/index.html @@ -10,7 +10,7 @@ ---
      {{JSRef}}
      -

      findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。

      +

      findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回 -1。

      {{EmbedInteractiveExample("pages/js/array-findindex.html")}}
      @@ -42,11 +42,11 @@

      参数

      返回值

      -

          数组中通过提供测试函数的第一个元素的索引。否则,返回-1

      +

          数组中通过提供测试函数的第一个元素的索引。否则,返回 -1

      描述

      -

      findIndex方法对数组中的每个数组索引0..length-1(包括)执行一次callback函数,直到找到一个callback函数返回真实值(强制为true)的值。如果找到这样的元素,findIndex会立即返回该元素的索引。如果回调从不返回真值,或者数组的length为 0,则findIndex返回-1。 与某些其他数组方法(如 Array#some)不同,在稀疏数组中,即使对于数组中不存在的条目的索引也会调用回调函数。

      +

      findIndex方法对数组中的每个数组索引0..length-1(包括)执行一次callback函数,直到找到一个callback函数返回真实值(强制为true)的值。如果找到这样的元素,findIndex会立即返回该元素的索引。如果回调从不返回真值,或者数组的length为 0,则findIndex返回 -1。与某些其他数组方法(如 Array#some)不同,在稀疏数组中,即使对于数组中不存在的条目的索引也会调用回调函数。

      回调函数调用时有三个参数:元素的值,元素的索引,以及被遍历的数组。

      @@ -60,7 +60,7 @@

      示例

      查找数组中首个质数元素的索引

      -

      以下示例查找数组中素数的元素的索引(如果不存在素数,则返回-1)。

      +

      以下示例查找数组中素数的元素的索引(如果不存在素数,则返回 -1)。

      function isPrime(element, index, array) {
         var start = 2;
      diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/foreach/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/foreach/index.html
      index 77cf4ce9869378..a271fc60e35589 100644
      --- a/files/zh-cn/web/javascript/reference/global_objects/array/foreach/index.html
      +++ b/files/zh-cn/web/javascript/reference/global_objects/array/foreach/index.html
      @@ -181,7 +181,7 @@ 

      使用 thisArg

      对象复制器函数

      -

      下面的代码会创建一个给定对象的副本。 创建对象的副本有不同的方法,以下是只是一种方法,并解释了 Array.prototype.forEach() 是如何使用 ECMAScript 5 Object.* 元属性(meta property)函数工作的。

      +

      下面的代码会创建一个给定对象的副本。创建对象的副本有不同的方法,以下是只是一种方法,并解释了 Array.prototype.forEach() 是如何使用 ECMAScript 5 Object.* 元属性(meta property)函数工作的。

      function copy(obj) {
         const copy = Object.create(Object.getPrototypeOf(obj));
      diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/from/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/from/index.html
      index 0fb87821ee2b57..e7de5b7b65b6f6 100644
      --- a/files/zh-cn/web/javascript/reference/global_objects/array/from/index.html
      +++ b/files/zh-cn/web/javascript/reference/global_objects/array/from/index.html
      @@ -49,9 +49,9 @@ 

      描述

    • 可迭代对象(可以获取对象中的元素,如 Map 和 Set 等)
    -

    Array.from() 方法有一个可选参数 mapFn,让你可以在最后生成的数组上再执行一次 {{jsxref("Array.prototype.map", "map")}} 方法后再返回。也就是说 Array.from(obj, mapFn, thisArg) 就相当于 Array.from(obj).map(mapFn, thisArg), 除非创建的不是可用的中间数组。 这对一些数组的子类,typed arrays 来说很重要,因为中间数组的值在调用 map() 时需要是适当的类型。

    +

    Array.from() 方法有一个可选参数 mapFn,让你可以在最后生成的数组上再执行一次 {{jsxref("Array.prototype.map", "map")}} 方法后再返回。也就是说 Array.from(obj, mapFn, thisArg) 就相当于 Array.from(obj).map(mapFn, thisArg), 除非创建的不是可用的中间数组。这对一些数组的子类,typed arrays 来说很重要,因为中间数组的值在调用 map() 时需要是适当的类型。

    -

    from()length 属性为 1 ,即 Array.from.length === 1

    +

    from()length 属性为 1,即 Array.from.length === 1

    在 ES2015 中, Class 语法允许我们为内置类型(比如 Array)和自定义类新建子类(比如叫 SubArray)。这些子类也会继承父类的静态方法,比如 SubArray.from(),调用该方法后会返回子类 SubArray 的一个实例,而不是 Array 的实例。

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/indexof/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/indexof/index.html index ae57e69e33ad32..a8a36620e1d1a3 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/indexof/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/array/indexof/index.html @@ -12,7 +12,7 @@ ---
    {{JSRef}}
    -

    indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

    +

    indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 -1。

    {{EmbedInteractiveExample("pages/js/array-indexof.html")}}
    @@ -30,7 +30,7 @@

    参数

    searchElement
    要查找的元素
    fromIndex {{optional_inline}}
    -
    开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回 -1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即 -1 表示从最后一个元素开始查找,-2 表示从倒数第二个元素开始查找 ,以此类推。 注意:如果参数中提供的索引值是一个负值,并不改变其查找顺序,查找顺序仍然是从前向后查询数组。如果抵消后的索引值仍小于 0,则整个数组都将会被查询。其默认值为 0。
    +
    开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回 -1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即 -1 表示从最后一个元素开始查找,-2 表示从倒数第二个元素开始查找,以此类推。注意:如果参数中提供的索引值是一个负值,并不改变其查找顺序,查找顺序仍然是从前向后查询数组。如果抵消后的索引值仍小于 0,则整个数组都将会被查询。其默认值为 0。

    返回值

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/lastindexof/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/lastindexof/index.html index 4cc316081090d0..0512e1330a9496 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/lastindexof/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/array/lastindexof/index.html @@ -26,7 +26,7 @@

    参数

    返回值

    -

    数组中该元素最后一次出现的索引,如未找到返回-1。

    +

    数组中该元素最后一次出现的索引,如未找到返回 -1。

    描述

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/length/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/length/index.html index a4bbbcaea734c9..b866ecefe1677d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/length/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/array/length/index.html @@ -91,7 +91,7 @@

    遍历数组

    截断数组

    -

    下面的例子中,如果数组长度大于 3,则把该数组的长度截断为 3 。

    +

    下面的例子中,如果数组长度大于 3,则把该数组的长度截断为 3。

    var numbers = [1, 2, 3, 4, 5];
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.md b/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.md
    index 89f5e82b358887..c9e22cf5cc959b 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.md
    +++ b/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.md
    @@ -46,7 +46,7 @@ reduce(function(previousValue, currentValue, currentIndex, array) { /* ... */ },
     ### 参数
     
     - `callbackFn`
    -  - : 一个 “reducer” 函数,包含四个参数:
    +  - : 一个“reducer”函数,包含四个参数:
         - `previousValue`:上一次调用 `callbackFn` 时的返回值。在第一次调用时,若指定了初始值  `initialValue`,其值则为 `initialValue`,否则为数组索引为 0 的元素 `array[0]`。
         - `currentValue`:数组中正在处理的元素。在第一次调用时,若指定了初始值  `initialValue`,其值则为数组索引为 0 的元素 `array[0]`,否则为 `array[1]`。
         - `currentIndex`:数组中正在处理的元素的索引。若指定了初始值 `initialValue`,则起始索引号为 0,否则从索引 1 起始。
    @@ -56,7 +56,7 @@ reduce(function(previousValue, currentValue, currentIndex, array) { /* ... */ },
     
     ### 返回值
     
    -使用 “reducer” 回调函数遍历整个数组后的结果。
    +使用“reducer”回调函数遍历整个数组后的结果。
     
     ### 异常
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/shift/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/shift/index.html
    index a8185c8a4984a2..4f257bf8b47620 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/array/shift/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/array/shift/index.html
    @@ -41,16 +41,16 @@ 

    移除数组中的一个元素

    let myFish = ['angel', 'clown', 'mandarin', 'surgeon'];
     
    -console.log('调用 shift 之前: ' + myFish);
    -// "调用 shift 之前: angel,clown,mandarin,surgeon"
    +console.log('调用 shift 之前:' + myFish);
    +// "调用 shift 之前:angel,clown,mandarin,surgeon"
     
     var shifted = myFish.shift();
     
    -console.log('调用 shift 之后: ' + myFish);
    -// "调用 shift 之后: clown,mandarin,surgeon"
    +console.log('调用 shift 之后:' + myFish);
    +// "调用 shift 之后:clown,mandarin,surgeon"
     
    -console.log('被删除的元素: ' + shifted);
    -// "被删除的元素: angel"
    +console.log('被删除的元素:' + shifted); +// "被删除的元素:angel"
    var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/slice/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/slice/index.html
    index 9f3abcd5810ae4..1517019dc5e67c 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/array/slice/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/array/slice/index.html
    @@ -100,7 +100,7 @@ 

    使用 slice

    类数组(Array-like)对象

    -

    slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。 一个函数中的  {{jsxref("Functions/arguments", "arguments")}} 就是一个类数组对象的例子。

    +

    slice 方法可以用来将一个类数组(Array-like)对象/集合转换成一个新数组。你只需将该方法绑定到这个对象上。一个函数中的  {{jsxref("Functions/arguments", "arguments")}} 就是一个类数组对象的例子。

    function list() {
       return Array.prototype.slice.call(arguments);
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/sort/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/sort/index.html
    index 2ad74bea61e77a..434594837a10f0 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/array/sort/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/array/sort/index.html
    @@ -49,15 +49,15 @@ 

    描述

    如果指明了 compareFunction ,那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:

      -
    • 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
    • +
    • 如果 compareFunction(a, b) 小于 0,那么 a 会被排列到 b 之前;
      -
    • 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);
    • +
    • 如果 compareFunction(a, b) 等于 0,a 和 b 的相对位置不变。备注:ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);
      -
    • 如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
    • +
    • 如果 compareFunction(a, b) 大于 0,b 会被排列到 a 之前。
    • compareFunction(a, b) 必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/splice/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/splice/index.html index c75ce66e4e5da6..e3b9696aa9a578 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/splice/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/array/splice/index.html @@ -48,16 +48,16 @@

    从索 var removed = myFish.splice(2, 0, "drum"); // 运算后的 myFish: ["angel", "clown", "drum", "mandarin", "sturgeon"] -// 被删除的元素: [], 没有元素被删除 +// 被删除的元素:[], 没有元素被删除

    -

    从索引 2 的位置开始删除 0 个元素,插入“drum” 和 "guitar"

    +

    从索引 2 的位置开始删除 0 个元素,插入“drum”和 "guitar"

    var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
     var removed = myFish.splice(2, 0, 'drum', 'guitar');
     
     // 运算后的 myFish: ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
    -// 被删除的元素: [], 没有元素被删除
    +// 被删除的元素:[], 没有元素被删除
     

    从索引 3 的位置开始删除 1 个元素

    @@ -66,7 +66,7 @@

    从索引 3 的位置开 var removed = myFish.splice(3, 1); // 运算后的 myFish: ["angel", "clown", "drum", "sturgeon"] -// 被删除的元素: ["mandarin"] +// 被删除的元素:["mandarin"]

    从索引 2 的位置开始删除 1 个元素,插入“trumpet”

    @@ -75,7 +75,7 @@

    从 var removed = myFish.splice(2, 1, "trumpet"); // 运算后的 myFish: ["angel", "clown", "trumpet", "sturgeon"] -// 被删除的元素: ["drum"] +// 被删除的元素:["drum"]

    从索引 0 的位置开始删除 2 个元素,插入"parrot"、"anemone"和"blue"

    @@ -84,7 +84,7 @@

    从索引 2 的位置开始删除 2 个元素

    @@ -93,7 +93,7 @@

    从索引 2 的位置 var removed = myFish.splice(myFish.length - 3, 2); // 运算后的 myFish: ["parrot", "anemone", "sturgeon"] -// 被删除的元素: ["blue", "trumpet"] +// 被删除的元素:["blue", "trumpet"]

    从索引 -2 的位置开始删除 1 个元素

    @@ -102,7 +102,7 @@

    从索引 -2 的位置 var removed = myFish.splice(-2, 1); // 运算后的 myFish: ["angel", "clown", "sturgeon"] -// 被删除的元素: ["mandarin"] +// 被删除的元素:["mandarin"]

    从索引 2 的位置开始删除所有元素

    @@ -110,7 +110,7 @@

    从索引 2 的位置开 var removed = myFish.splice(2); // 运算后的 myFish: ["angel", "clown"] -// 被删除的元素: ["mandarin", "sturgeon"] +// 被删除的元素:["mandarin", "sturgeon"]

    规范

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html b/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html index 80902ff4fad264..424e5c9cfcd70d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html @@ -17,7 +17,7 @@

    语法

    描述

    -

    byteLength 属性是一个访问器属性,它的 set 访问器函数是 undefined,这意味着你只能读这个属性。 该值在数组创建时确定,并且不可变更。如果这个ArrayBuffer 被移除,则此属性返回 0。

    +

    byteLength 属性是一个访问器属性,它的 set 访问器函数是 undefined,这意味着你只能读这个属性。该值在数组创建时确定,并且不可变更。如果这个ArrayBuffer 被移除,则此属性返回 0。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/slice/index.html b/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/slice/index.html index 91ed39e6001f66..34f2c73abd0dff 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/slice/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/arraybuffer/slice/index.html @@ -21,7 +21,7 @@

    参数

    begin
    从零开始的字节索引,切片从这开始。
    end
    -
    结束切片的字节索引。如果没指定 end,新的 ArrayBuffer 将包含这个 ArrayBuffer 从头到尾的所有字节。由 begin 和 end 指定的这个范围夹在当前数组的有效索引范围内。如果新ArrayBuffer的长度在计算后为负,它将强制为 0 。
    +
    结束切片的字节索引。如果没指定 end,新的 ArrayBuffer 将包含这个 ArrayBuffer 从头到尾的所有字节。由 begin 和 end 指定的这个范围夹在当前数组的有效索引范围内。如果新ArrayBuffer的长度在计算后为负,它将强制为 0。

    返回值

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/atomics/and/index.html b/files/zh-cn/web/javascript/reference/global_objects/atomics/and/index.html index 073cd5e5092e99..11fa3890947776 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/atomics/and/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/atomics/and/index.html @@ -47,7 +47,7 @@

    错误

    描述

    -

    假如 a 和 b 都是 1,那么按位与运算( a & b)仅产生 1。与操作的真值表为:

    +

    假如 a 和 b 都是 1,那么按位与运算(a & b)仅产生 1。与操作的真值表为:

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/bigint/bigint/index.html b/files/zh-cn/web/javascript/reference/global_objects/bigint/bigint/index.html index cec0e705b2df6b..df50bdeb161eec 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/bigint/bigint/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/bigint/bigint/index.html @@ -16,7 +16,7 @@

    参数

    value
    -
    被创建的对象的数值。 可以是字符串或整数。
    +
    被创建的对象的数值。可以是字符串或整数。
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/bigint/tolocalestring/index.html b/files/zh-cn/web/javascript/reference/global_objects/bigint/tolocalestring/index.html index 954db703f20c17..bd277c945a07db 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/bigint/tolocalestring/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/bigint/tolocalestring/index.html @@ -57,7 +57,7 @@

    Using locales

    // the nu extension key requests a numbering system, e.g. Chinese decimal console.log(bigint.toLocaleString('zh-Hans-CN-u-nu-hanidec')); -// → 一二三,四五六,七八九,一二三,四五六,七八九 +// → 一二三,四五六,七八九,一二三,四五六,七八九 // when requesting a language that may not be supported, such as // Balinese, include a fallback language, in this case Indonesian diff --git a/files/zh-cn/web/javascript/reference/global_objects/boolean/index.html b/files/zh-cn/web/javascript/reference/global_objects/boolean/index.html index 51e5f1bef82160..b2c5e0d9bddc1d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/boolean/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/boolean/index.html @@ -17,7 +17,7 @@

    描述

    注意不要将基本类型中的布尔值 true 和 false 与值为 true 和 false 的 Boolean 对象弄混了。

    -

    其值不是{{jsxref("undefined")}}或{{jsxref("null")}}的任何对象(包括其值为false的布尔对象)在传递给条件语句时都将计算为true。 例如,以下{{jsxref("Statements/if...else", "if")}}语句中的条件评估为true

    +

    其值不是{{jsxref("undefined")}}或{{jsxref("null")}}的任何对象(包括其值为false的布尔对象)在传递给条件语句时都将计算为true。例如,以下{{jsxref("Statements/if...else", "if")}}语句中的条件评估为true

    var x = new Boolean(false);
     if (x) {
    @@ -51,7 +51,7 @@ 

    描述

    最后,不要在应该使用基本类型布尔值的地方使用 Boolean 对象。

    -

    备注:当将非标准属性document.all用作此构造函数的参数时,结果是值为false的布尔对象。 此属性是旧属性,是非标准属性,不应使用。

    +

    备注:当将非标准属性document.all用作此构造函数的参数时,结果是值为false的布尔对象。此属性是旧属性,是非标准属性,不应使用。

    构造器

    @@ -65,9 +65,9 @@

    实例方法

    {{jsxref("Boolean.prototype.toString()")}}
    -
    根据对象的值返回字符串"true""false"。 重写{{jsxref("Object.prototype.toString()")}}方法。
    +
    根据对象的值返回字符串"true""false"。重写{{jsxref("Object.prototype.toString()")}}方法。
    {{jsxref("Boolean.prototype.valueOf()")}}
    -
    返回{{jsxref("Boolean")}}对象的原始值。 重写{{jsxref("Object.prototype.valueOf()")}}方法。
    +
    返回{{jsxref("Boolean")}}对象的原始值。重写{{jsxref("Object.prototype.valueOf()")}}方法。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/boolean/tosource/index.html b/files/zh-cn/web/javascript/reference/global_objects/boolean/tosource/index.html index b57e79aecf713f..c68cb2689fd5ce 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/boolean/tosource/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/boolean/tosource/index.html @@ -40,7 +40,7 @@

    描述

    规范

    -

    不是任何标准的一部分。 在 JavaScript 1.3 中实现。

    +

    不是任何标准的一部分。在 JavaScript 1.3 中实现。

    浏览器兼容性

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/getday/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/getday/index.html index be94e680db7f16..ed27b72de1edf7 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/getday/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/getday/index.html @@ -18,7 +18,7 @@

    语法

    返回值

    -

    根据本地时间,返回一个 0 到 6 之间的整数值,代表星期几: 0 代表星期日, 1 代表星期一,2 代表星期二, 依次类推。

    +

    根据本地时间,返回一个 0 到 6 之间的整数值,代表星期几:0 代表星期日,1 代表星期一,2 代表星期二,依次类推。

    例子

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/getfullyear/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/getfullyear/index.html index 11a3abd5845ec4..11b683852cd1df 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/getfullyear/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/getfullyear/index.html @@ -30,7 +30,7 @@

    返回值

    描述

    -

    getFullYear()返回的值是绝对数。 对于 1000 到 9999 之间的日期,getFullYear()返回一个四位数字,如 1995。使用此函数确保在 2000 年后兼容。

    +

    getFullYear()返回的值是绝对数。对于 1000 到 9999 之间的日期,getFullYear()返回一个四位数字,如 1995。使用此函数确保在 2000 年后兼容。

    例子

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/getmonth/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/getmonth/index.html index 05b8b3e10a2f15..beeae2c6264adc 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/getmonth/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/getmonth/index.html @@ -28,7 +28,7 @@

    参数

    返回值

    -

    getMonth返回一个 0 到 11 的整数值: 0 代表一月份,1 代表二月份, 2 代表三月份,依次类推。

    +

    getMonth返回一个 0 到 11 的整数值:0 代表一月份,1 代表二月份,2 代表三月份,依次类推。

    例子

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/index.html index 56050397429564..86d445d41dd46a 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/index.html @@ -44,7 +44,7 @@

    Unix 时间戳

    时间戳字符串 dateString
    表示日期的字符串值。该字符串应该能被 {{jsxref("Date.parse()")}} 正确方法识别(即符合 IETF-compliant RFC 2822 timestamps 或 version of ISO8601)。
    -

    备注:由于浏览器之间的差异与不一致性,强烈不推荐使用Date构造函数来解析日期字符串 (或使用与其等价的Date.parse)。对 RFC 2822 格式的日期仅有约定俗成的支持。 对 ISO 8601 格式的支持中,仅有日期的串 (例如 "1970-01-01") 会被处理为 UTC 而不是本地时间,与其他格式的串的处理不同。

    +

    备注:由于浏览器之间的差异与不一致性,强烈不推荐使用Date构造函数来解析日期字符串 (或使用与其等价的Date.parse)。对 RFC 2822 格式的日期仅有约定俗成的支持。对 ISO 8601 格式的支持中,仅有日期的串 (例如 "1970-01-01") 会被处理为 UTC 而不是本地时间,与其他格式的串的处理不同。

    @@ -55,7 +55,7 @@

    分别提供日期与时
    year
    -
    表示年份的整数值。 0 到 99 会被映射至 1900 年至 1999 年,其它值代表实际年份。参见 示例
    +
    表示年份的整数值。0 到 99 会被映射至 1900 年至 1999 年,其它值代表实际年份。参见 示例
    monthIndex
    表示月份的整数值,从 0(1 月)到 11(12 月)。
    date{{optional_inline}}
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/parse/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/parse/index.html index 772046a2b9d44c..0f480be927f965 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/parse/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/parse/index.html @@ -46,13 +46,13 @@

    描述

    parse 方法接受一个表示时间的字符串,返回相应的时间值。该方法可以接受符合 RFC2822 / IETF 日期语法 (RFC2822 Section 3.3) 的字符串,如 "Mon, 25 Dec 1995 13:30:00 GMT"。该方法能够理解美国大陆时区的缩写,但是为了更通用,应该使用时区偏移,如 "Mon, 25 Dec 1995 13:30:00 +0430"(格林威治的子午线向东偏移 4 小时 30 分钟)。如果没有指定时区,默认使用本地时区。

    -

    GMT 和 UTC 被看作相等。 如果 RFC2822 Section 3.3 格式中不包含时区信息时,会以本地时区来解析日期字符串。

    +

    GMT 和 UTC 被看作相等。如果 RFC2822 Section 3.3 格式中不包含时区信息时,会以本地时区来解析日期字符串。

    由于在解析日期字符串时存在偏差会导致结果不一致,因此推荐始终手动解析日期字符串,特别是不同的 ECMAScript 实现会把诸如“2015-10-12 12:00:00”的字符串解析为 NaN,UTC 或者本地时间。

    ECMAScript 5 ISO-8601 日期格式支持

    -

    另外,日期时间字符串也可以使用 ISO 8601 格式。例如,"2011-10-10"(仅日期)或 "2011-10-10T14:48:00"(日期和时间)能够作为参数被传递和解析。 如果参数字符串只包含日期格式,那么将会使用 UTC 时区来解析该参数。而如果是ISO 8601 格式中规定的时间加日期的格式,则将会被作为本地时区处理。

    +

    另外,日期时间字符串也可以使用 ISO 8601 格式。例如,"2011-10-10"(仅日期)或 "2011-10-10T14:48:00"(日期和时间)能够作为参数被传递和解析。如果参数字符串只包含日期格式,那么将会使用 UTC 时区来解析该参数。而如果是ISO 8601 格式中规定的时间加日期的格式,则将会被作为本地时区处理。

    虽然在日期字符串解析过程中会使用时区修饰符,但返回值总会是从由 NaN 表示的 1970-1-1 00:00:00 UTC 到该日期字符串所表示日期的毫秒数。

    @@ -66,7 +66,7 @@

    引擎相关的日期格式

    ECMAScript  规范规定:如果一个字符串不符合标准格式,则函数可以使用任何由引擎决定的策略或解析算法。 Date.parse()  对于因包含有无效元素而无法识别的 ISO 格式字符串或者日期应该返回 {{jsxref("NaN")}} 。

    -

    但是, 在如 ECMA-262 规范中定义的情况,如果因为无效值而导致日期字符串不能被识别为 ISO 格式时,根据浏览器和给定的值不同,返回值可以是,也可以不是 {{jsxref("NaN")}} 。比如:

    +

    但是,在如 ECMA-262 规范中定义的情况,如果因为无效值而导致日期字符串不能被识别为 ISO 格式时,根据浏览器和给定的值不同,返回值可以是,也可以不是 {{jsxref("NaN")}} 。比如:

    // 包含无效值的非 ISO 格式字符串
     new Date('23/25/2014');
    @@ -84,10 +84,10 @@

    引擎相关的日期格式

    将会被解析为本地时间 2014 年 10 月 6 日,而不是 6 月 10 日。另一个例子

    new Date('foo-bar 2014').toString();
    -// 返回: "Invalid Date"
    +// 返回:"Invalid Date"
     
     Date.parse('foo-bar 2014');
    -// 返回: NaN
    +// 返回:NaN

    例子

    @@ -102,7 +102,7 @@

    例子:使用 Date.parse()

    Date.parse("Aug 9, 1995");
     
    -

    在时区 GMT-0300 中返回 807937200000 ,在其他时区中返回另外的值,因为未指定时区并且不是 ISO 格式,所以默认使用本地时区。

    +

    在时区 GMT-0300 中返回 807937200000,在其他时区中返回另外的值,因为未指定时区并且不是 ISO 格式,所以默认使用本地时区。

    Date.parse("Wed, 09 Aug 1995 00:00:00 GMT");
     
    @@ -112,7 +112,7 @@

    例子:使用 Date.parse()

    Date.parse("Wed, 09 Aug 1995 00:00:00");
     
    -

    在时区 GMT-0300 中返回 807937200000 ,在其他时区中返回另外的值,因为没有时区标志并且不是 ISO 格式,所以作为本地时区处理。

    +

    在时区 GMT-0300 中返回 807937200000,在其他时区中返回另外的值,因为没有时区标志并且不是 ISO 格式,所以作为本地时区处理。

    Date.parse("Thu, 01 Jan 1970 00:00:00 GMT");
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/setutcfullyear/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/setutcfullyear/index.html index 238f6f504b0cec..d061cc8d3ff972 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/setutcfullyear/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/setutcfullyear/index.html @@ -58,7 +58,7 @@

    规范

    - + diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/setutcseconds/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/setutcseconds/index.html index 9bdcda5ed1dada..15c2c8501b8860 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/setutcseconds/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/setutcseconds/index.html @@ -32,7 +32,7 @@

    返回值

    描述

    -

    如果你没有设置 msValue 参数的值, 那么返回的值来自{{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}} 方法。

    +

    如果你没有设置 msValue 参数的值,那么返回的值来自{{jsxref("Date.prototype.getUTCMilliseconds()", "getUTCMilliseconds()")}} 方法。

    如果你指定的值超出了范围,setUTCSeconds() 因此会更新{{jsxref("Date")}} 对象中 date 的相关信息 . 举个例子,如果你设置 secondsValue 为 100, {{jsxref("Date")}} 对象中的分钟数会增加 1, 并且秒数会变成 40.

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/tojson/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/tojson/index.html index 69ae66cee467e3..3d83fc8619e2f8 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/tojson/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/tojson/index.html @@ -18,7 +18,7 @@

    语法

    描述

    -

    {{jsxref("Date")}} 实例引用一个具体的时间点。 调用 toJSON() 返回一个 JSON 格式字符串 (使用 {{jsxref("Date.prototype.toISOString()", "toISOString()")}}),表示该日期对象的值。默认情况下,这个方法常用于 {{Glossary("JSON")}}序列化{{jsxref("Date")}}对象。

    +

    {{jsxref("Date")}} 实例引用一个具体的时间点。调用 toJSON() 返回一个 JSON 格式字符串 (使用 {{jsxref("Date.prototype.toISOString()", "toISOString()")}}),表示该日期对象的值。默认情况下,这个方法常用于 {{Glossary("JSON")}}序列化{{jsxref("Date")}}对象。

    样例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/tolocaledatestring/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/tolocaledatestring/index.html index d6c8e7e58e93db..a2ba79ff3754c6 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/tolocaledatestring/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/tolocaledatestring/index.html @@ -17,7 +17,7 @@

    语法

    参数

    -

     查看浏览器兼容性小节,看下哪些浏览器支持 locales 和 options 参数,还可以参看例子: 检测 localesoptions 参数支持情况

    +

     查看浏览器兼容性小节,看下哪些浏览器支持 locales 和 options 参数,还可以参看例子:检测 localesoptions 参数支持情况

    {{page('zh-CN/docs/JavaScript/Reference/Global_Objects/DateTimeFormat','Parameters')}}

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/tostring/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/tostring/index.html index 80663da2f0d371..abe574c43810fa 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/tostring/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/tostring/index.html @@ -31,7 +31,7 @@

    描述

    例子

    -

    例子: 使用 toString 方法

    +

    例子:使用 toString 方法

    下例把一个{{jsxref("Date")}}对象的 toString 返回值赋给 myVar:

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/totimestring/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/totimestring/index.html index 53cdaee1856948..11bf51fa5befaa 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/totimestring/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/totimestring/index.html @@ -17,7 +17,7 @@

    语法

    描述

    -

    {{jsxref("Global_Objects/Date", "Date")}} 对象的实例引用一个具体的时间点。 调用 {{jsxref("Date.toString", "toString")}} 方法以美式英语和人类易读的形式,返回日期对象的格式化字符串。在 SpiderMonkey 里,该字符串由日期部分(年月日)和其后的时间部分(时分秒和时区)组成。有时会需要获取时间部分的字符串,这可以由 toTimeString 方法完成。

    +

    {{jsxref("Global_Objects/Date", "Date")}} 对象的实例引用一个具体的时间点。调用 {{jsxref("Date.toString", "toString")}} 方法以美式英语和人类易读的形式,返回日期对象的格式化字符串。在 SpiderMonkey 里,该字符串由日期部分(年月日)和其后的时间部分(时分秒和时区)组成。有时会需要获取时间部分的字符串,这可以由 toTimeString 方法完成。

    The toTimeString method is especially useful because compliant engines implementing ECMA-262 may differ in the string obtained from toString for Date objects, as the format is implementation-dependent; simple string slicing approaches may not produce consistent results across multiple engines.

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/date/utc/index.html b/files/zh-cn/web/javascript/reference/global_objects/date/utc/index.html index 2926fa44949a89..660cbee29cd850 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/date/utc/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/date/utc/index.html @@ -42,7 +42,7 @@

    描述

    UTC 方法接受以逗号隔开的日期参数,返回 1970-1-1 00:00:00 UTC 到指定的日期之间的毫秒数。

    -

    你应该指定一个完整格式的年份,如 1998。如果年份被指定为 0 到 99 之间,则该方法会将年份转换为 20 世纪的一个年份(即 1900 + year),例如,指定为 95, 则年份为 1995。

    +

    你应该指定一个完整格式的年份,如 1998。如果年份被指定为 0 到 99 之间,则该方法会将年份转换为 20 世纪的一个年份(即 1900 + year),例如,指定为 95,则年份为 1995。

    UTC 方法与 Date 有两点不同:

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/error/stack/index.html b/files/zh-cn/web/javascript/reference/global_objects/error/stack/index.html index 65cbfd12a4b323..b50efbcafc84ef 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/error/stack/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/error/stack/index.html @@ -19,7 +19,7 @@

    描述

    注意这是 Firefox 定义的格式,并没有标准的定义。但是 Safari 6+ 和 Opera 12- 定义了一种非常相似的格式。其他使用 JavaScript V8 引擎的浏览器(例如 Chrome、Opera 15+,安卓浏览器)和 IE 10+,定义了一种不同的格式(可参见 error.stack 文档)

    -

    堆栈中的参数值: Firefox 14 版本之前是 ({{bug("744842")}}) 函数名会随着参数值会在添加 @符号之前被立即转换成用圆括号包裹的 string 类型。然而对象或者数组等其他类型似乎会被转换成"[object Object]"并且这种格式不能回退到之前实际上的对象,而纯值会被渲染(或许这种在 Firefox 14 中仍有这种可能,使用 arguments.callee.caller.arguments 更加简单。因为函数名可以使用 arguments.callee.caller.name 渲染)。"undefined" 被显示为 "(void 0)" 不过要注意的是如果是字符串类型的参数会直接以类似 "@", "(", ")" 格式通过编译(或者是包含在文件名中)。你不能简单的依赖这些将它分成多个组件,但是,对于 Firefox 14 及以后的版本来说,这些都不是问题

    +

    堆栈中的参数值:Firefox 14 版本之前是 ({{bug("744842")}}) 函数名会随着参数值会在添加 @符号之前被立即转换成用圆括号包裹的 string 类型。然而对象或者数组等其他类型似乎会被转换成"[object Object]"并且这种格式不能回退到之前实际上的对象,而纯值会被渲染(或许这种在 Firefox 14 中仍有这种可能,使用 arguments.callee.caller.arguments 更加简单。因为函数名可以使用 arguments.callee.caller.name 渲染)。"undefined" 被显示为 "(void 0)" 不过要注意的是如果是字符串类型的参数会直接以类似 "@", "(", ")" 格式通过编译(或者是包含在文件名中)。你不能简单的依赖这些将它分成多个组件,但是,对于 Firefox 14 及以后的版本来说,这些都不是问题

    不同的浏览器会在不同时期设置这个值。例如,Firefox 在创建{{jsxref("Error")}}对象时设置它,然而 PhantomJS 是在当且仅当它抛出 {{jsxref("Error")}}时, 并且MSDN docs 似乎也实现了 PhantomJS 的方式。

    @@ -100,7 +100,7 @@

    Stack of eval'ed code

    // @file:///C:/example.html:7:6 -

    你也可以使用//# sourceURL 命名 eval 源的指令。 也可以查看在 Debugger文档中的Debug eval 源blog post 博客 。

    +

    你也可以使用//# sourceURL 命名 eval 源的指令。也可以查看在 Debugger文档中的Debug eval 源blog post 博客。

    规范

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/escape/index.html b/files/zh-cn/web/javascript/reference/global_objects/escape/index.html index 774309b15c3c5d..0b9f4926b2902c 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/escape/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/escape/index.html @@ -28,7 +28,7 @@

    描述

    escape 函数是全局对象的属性。特色字符如:@*_+-./ 被排除在外。

    -

    字符的 16 进制格式值,当该值小于等于 0xFF 时,用一个 2 位转义序列: %xx 表示。大于的话则使用 4 位序列:%uxxxx 表示。

    +

    字符的 16 进制格式值,当该值小于等于 0xFF 时,用一个 2 位转义序列:%xx 表示。大于的话则使用 4 位序列:%uxxxx 表示。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/eval/index.html b/files/zh-cn/web/javascript/reference/global_objects/eval/index.html index cbd8ef0d6c4338..e750ffbb0d8ae6 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/eval/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/eval/index.html @@ -48,7 +48,7 @@

    描述

    eval(expression.toString()); -

    如果你间接的使用 eval(),比如通过一个引用来调用它,而不是直接的调用 eval。 从 ECMAScript 5 起,它工作在全局作用域下,而不是局部作用域中。这就意味着,例如,下面的代码的作用声明创建一个全局函数,并且 eval 中的这些代码在执行期间不能在被调用的作用域中访问局部变量。

    +

    如果你间接的使用 eval(),比如通过一个引用来调用它,而不是直接的调用 eval。从 ECMAScript 5 起,它工作在全局作用域下,而不是局部作用域中。这就意味着,例如,下面的代码的作用声明创建一个全局函数,并且 eval 中的这些代码在执行期间不能在被调用的作用域中访问局部变量。

    function test() {
       var x = 2, y = 4;
    @@ -60,7 +60,7 @@ 

    描述

    永远不要使用 eval

    -

    eval() 是一个危险的函数, 它使用与调用者相同的权限执行代码。如果你用 eval() 运行的字符串代码被恶意方(不怀好意的人)修改,您最终可能会在您的网页/扩展程序的权限下,在用户计算机上运行恶意代码。更重要的是,第三方代码可以看到某一个 eval() 被调用时的作用域,这也有可能导致一些不同方式的攻击。相似的 {{jsxref("Global_Objects/Function", "Function")}} 就不容易被攻击。

    +

    eval() 是一个危险的函数,它使用与调用者相同的权限执行代码。如果你用 eval() 运行的字符串代码被恶意方(不怀好意的人)修改,您最终可能会在您的网页/扩展程序的权限下,在用户计算机上运行恶意代码。更重要的是,第三方代码可以看到某一个 eval() 被调用时的作用域,这也有可能导致一些不同方式的攻击。相似的 {{jsxref("Global_Objects/Function", "Function")}} 就不容易被攻击。

    eval() 通常比其他替代方法更慢,因为它必须调用 JS 解释器,而许多其他结构则可被现代 JS 引擎进行优化。

    @@ -87,7 +87,7 @@

    永远不要使用 eval

    -

    比较上面的两个代码片段,两个代码片段似乎是以相同的方式工作,但再想一想:eval 的这个代码的速度要慢得多。注意c: new Date()在执行体中。在没有 eval 的函数中,对象在全局范围内被用来进行计算,因此浏览器可以放心的假设 Date 是来自 window.Date 的而不是一个名为 Date 的局部变量。 然而,在使用 eval() 的代码中,浏览器不能假设这一点,因为如果您的代码是下面这个:

    +

    比较上面的两个代码片段,两个代码片段似乎是以相同的方式工作,但再想一想:eval 的这个代码的速度要慢得多。注意c: new Date()在执行体中。在没有 eval 的函数中,对象在全局范围内被用来进行计算,因此浏览器可以放心的假设 Date 是来自 window.Date 的而不是一个名为 Date 的局部变量。然而,在使用 eval() 的代码中,浏览器不能假设这一点,因为如果您的代码是下面这个:

    function Date(n){
         return ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"][n%7 || 0];
    @@ -102,7 +102,7 @@ 

    永远不要使用 eval

    因此,在 eval() 版本的代码中,浏览器被迫进行高代价的查找调用以检查是否存在名为 Date() 的任何局部变量。与 Function() 相比,这是非常低效的。

    -

    在类似的情况下,如果您确实希望能够从 Function() 内部的代码调用 Date 函数,该怎么办? 你应该躲避并退回到 eval() 吗?绝对不是,永远不要这么做。而是尝试下面的方法。

    +

    在类似的情况下,如果您确实希望能够从 Function() 内部的代码调用 Date 函数,该怎么办?你应该躲避并退回到 eval() 吗?绝对不是,永远不要这么做。而是尝试下面的方法。

    function Date(n){
         return ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"][n%7 || 0];
    @@ -226,7 +226,7 @@ 

    使用 eval

    使用 eval 执行一串 JavaScript 语句

    -

    下面的例子使用 eval() 来执行 str 字符串。这个字符串包含了如果 x 等于 5,就打开一个 Alert 对话框并对 z 赋值 42,否则就对 z 赋值 0 的 JavaScript 语句。 当第二个声明被执行,eval() 将会令字符串被执行,并最终返回赋值给 z 的 42。

    +

    下面的例子使用 eval() 来执行 str 字符串。这个字符串包含了如果 x 等于 5,就打开一个 Alert 对话框并对 z 赋值 42,否则就对 z 赋值 0 的 JavaScript 语句。当第二个声明被执行,eval() 将会令字符串被执行,并最终返回赋值给 z 的 42。

    var x = 5;
     var str = "if (x == 5) {console.log('z is 42'); z = 42;} else z = 0;";
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/finalizationregistry/index.html b/files/zh-cn/web/javascript/reference/global_objects/finalizationregistry/index.html
    index 6f456c27556f8c..07ca5d103cab09 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/finalizationregistry/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/finalizationregistry/index.html
    @@ -13,7 +13,7 @@
     
     

    描述

    -

    FinalizationRegistry 提供了这样的一种方法:当一个在注册表中注册的对象被回收时,请求在某个时间点上调用一个清理回调。(清理回调有时被称为 finalizer )。

    +

    FinalizationRegistry 提供了这样的一种方法:当一个在注册表中注册的对象被回收时,请求在某个时间点上调用一个清理回调。(清理回调有时被称为 finalizer)。

    备注: 清理回调不应被用于必要的程序逻辑。详情请看清理回调的注意事项

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/float32array/index.html b/files/zh-cn/web/javascript/reference/global_objects/float32array/index.html index d674ef10ed0aea..cf35aac211381d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/float32array/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/float32array/index.html @@ -40,7 +40,7 @@

    方法

    {{jsxref("TypedArray.from", "Float32Array.from()")}}
    从一个类数组对象或可遍历对象创建一个新的 Float32Array。参见 {{jsxref("Array.from()")}}。
    {{jsxref("TypedArray.of", "Float32Array.of()")}}
    -
    用可变数量的参数创建一个新的 Float32Array。 参见 {{jsxref("Array.of()")}}。
    +
    用可变数量的参数创建一个新的 Float32Array。参见 {{jsxref("Array.of()")}}。

    Float32Array 属性

    @@ -72,31 +72,31 @@

    方法

    {{jsxref("TypedArray.every", "Float32Array.prototype.every()")}}
    检测是否所有元素都能通过给定函数的测试。参见{{jsxref("Array.prototype.every()")}}。
    {{jsxref("TypedArray.fill", "Float32Array.prototype.fill()")}}
    -
    用一个静态值填充给定的起始位置。 参见{{jsxref("Array.prototype.fill()")}}。
    +
    用一个静态值填充给定的起始位置。参见{{jsxref("Array.prototype.fill()")}}。
    {{jsxref("TypedArray.filter", "Float32Array.prototype.filter()")}}
    创建一个新数组,数据为原数组中所有能让给入函数返回 true 的元素。参见{{jsxref("Array.prototype.filter()")}}。
    {{jsxref("TypedArray.find", "Float32Array.prototype.find()")}}
    返回满足测试函数的值,如果没有找到,返回 undefined。参见{{jsxref("Array.prototype.find()")}}。
    {{jsxref("TypedArray.findIndex", "Float32Array.prototype.findIndex()")}}
    -
    返回满足测试函数的值的位置,如果没有找到,返回-1。参见{{jsxref("Array.prototype.findIndex()")}}。
    +
    返回满足测试函数的值的位置,如果没有找到,返回 -1。参见{{jsxref("Array.prototype.findIndex()")}}。
    {{jsxref("TypedArray.forEach", "Float32Array.prototype.forEach()")}}
    以每个元素为参数各调用一次函数。参见{{jsxref("Array.prototype.forEach()")}}。
    {{jsxref("TypedArray.includes", "Float32Array.prototype.includes()")}} {{experimental_inline}}
    判断是否包含某个元素,返回 truefalse。参见{{jsxref("Array.prototype.includes()")}}。
    {{jsxref("TypedArray.indexOf", "Float32Array.prototype.indexOf()")}}
    -
    返回数组中等于给定值的元素的第一个(最小)位置, 没有找到则返回-1。参见{{jsxref("Array.prototype.indexOf()")}}。
    +
    返回数组中等于给定值的元素的第一个(最小)位置,没有找到则返回 -1。参见{{jsxref("Array.prototype.indexOf()")}}。
    {{jsxref("TypedArray.join", "Float32Array.prototype.join()")}}
    -
    合并所有数组元素到一个字符串中。 参见{{jsxref("Array.prototype.join()")}}。
    +
    合并所有数组元素到一个字符串中。参见{{jsxref("Array.prototype.join()")}}。
    {{jsxref("TypedArray.keys", "Float32Array.prototype.keys()")}}
    返回一个包含数组中所有索引的数组遍历器。 参见{{jsxref("Array.prototype.keys()")}}。
    {{jsxref("TypedArray.lastIndexOf", "Float32Array.prototype.lastIndexOf()")}}
    -
    返回数组中等于给定值的元素的最后(最大)位置, 没有找到则返回-1。参见{{jsxref("Array.prototype.lastIndexOf()")}}。
    +
    返回数组中等于给定值的元素的最后(最大)位置,没有找到则返回 -1。参见{{jsxref("Array.prototype.lastIndexOf()")}}。
    {{jsxref("TypedArray.map", "Float32Array.prototype.map()")}}
    创建一个新的数组,数据由原数组每个元素依次传入给定函数后返回的值组成。参见{{jsxref("Array.prototype.map()")}}。
    {{jsxref("TypedArray.move", "Float32Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
    {{jsxref("TypedArray.copyWithin", "Float32Array.prototype.copyWithin()")}}以前的一个非标准版本。
    {{jsxref("TypedArray.reduce", "Float32Array.prototype.reduce()")}}
    -
    传入一个函数作为累加器,从左到右遍历,最终得到一个值。 参见{{jsxref("Array.prototype.reduce()")}}。
    +
    传入一个函数作为累加器,从左到右遍历,最终得到一个值。参见{{jsxref("Array.prototype.reduce()")}}。
    {{jsxref("TypedArray.reduceRight", "Float32Array.prototype.reduceRight()")}}
    传入一个函数作为累加器,从右到左遍历,最终得到一个值。参见{{jsxref("Array.prototype.reduceRight()")}}。
    {{jsxref("TypedArray.reverse", "Float32Array.prototype.reverse()")}}
    @@ -112,7 +112,7 @@

    方法

    {{jsxref("TypedArray.subarray", "Float32Array.prototype.subarray()")}}
    从给定的起始位置返回一个新的Float32Array
    {{jsxref("TypedArray.values", "Float32Array.prototype.values()")}}
    -
    返回一个包含所有数组元素的数组遍历器对象。 参见{{jsxref("Array.prototype.values()")}}。
    +
    返回一个包含所有数组元素的数组遍历器对象。参见{{jsxref("Array.prototype.values()")}}。
    {{jsxref("TypedArray.toLocaleString", "Float32Array.prototype.toLocaleString()")}}
    返回一个代表数组和其元素的本地化格式字符串。参见{{jsxref("Array.prototype.toLocaleString()")}}。
    {{jsxref("TypedArray.toString", "Float32Array.prototype.toString()")}}
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/float64array/index.html b/files/zh-cn/web/javascript/reference/global_objects/float64array/index.html index 88088a57b4521d..135abcea544dc0 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/float64array/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/float64array/index.html @@ -40,7 +40,7 @@

    方法

    {{jsxref("TypedArray.from", "Float64Array.from()")}}
    从一个类数组对象或可遍历对象创建一个新的 Float64Array。参见 {{jsxref("Array.from()")}}。
    {{jsxref("TypedArray.of", "Float64Array.of()")}}
    -
    用可变数量的参数创建一个新的 Float64Array。 参见 {{jsxref("Array.of()")}}。
    +
    用可变数量的参数创建一个新的 Float64Array。参见 {{jsxref("Array.of()")}}。

    Float64Array 属性

    @@ -78,25 +78,25 @@

    方法

    {{jsxref("TypedArray.find", "Float64Array.prototype.find()")}}
    返回满足测试函数的值,如果没有找到,返回 undefined。 参见{{jsxref("Array.prototype.find()")}}。
    {{jsxref("TypedArray.findIndex", "Float64Array.prototype.findIndex()")}}
    -
    返回满足测试函数的值的位置,如果没有找到,返回-1。参见{{jsxref("Array.prototype.findIndex()")}}。
    +
    返回满足测试函数的值的位置,如果没有找到,返回 -1。参见{{jsxref("Array.prototype.findIndex()")}}。
    {{jsxref("TypedArray.forEach", "Float64Array.prototype.forEach()")}}
    以每个元素为参数各调用一次函数。参见{{jsxref("Array.prototype.forEach()")}}。
    {{jsxref("TypedArray.includes", "Float64Array.prototype.includes()")}} {{experimental_inline}}
    判断是否包含某个元素,返回 truefalse。参见{{jsxref("Array.prototype.includes()")}}。
    {{jsxref("TypedArray.indexOf", "Float64Array.prototype.indexOf()")}}
    -
    返回数组中等于给定值的元素的第一个(最小)位置, 没有找到则返回-1。参见{{jsxref("Array.prototype.indexOf()")}}。
    +
    返回数组中等于给定值的元素的第一个(最小)位置,没有找到则返回 -1。参见{{jsxref("Array.prototype.indexOf()")}}。
    {{jsxref("TypedArray.join", "Float64Array.prototype.join()")}}
    合并所有数组元素到一个字符串中。参见{{jsxref("Array.prototype.join()")}}。
    {{jsxref("TypedArray.keys", "Float64Array.prototype.keys()")}}
    返回一个包含数组中所有索引的数组遍历器。 参见{{jsxref("Array.prototype.keys()")}}。
    {{jsxref("TypedArray.lastIndexOf", "Float64Array.prototype.lastIndexOf()")}}
    -
    返回数组中等于给定值的元素的最后(最大)位置, 没有找到则返回-1。参见{{jsxref("Array.prototype.lastIndexOf()")}}。
    +
    返回数组中等于给定值的元素的最后(最大)位置,没有找到则返回 -1。参见{{jsxref("Array.prototype.lastIndexOf()")}}。
    {{jsxref("TypedArray.map", "Float64Array.prototype.map()")}}
    创建一个新的数组,数据由原数组每个元素依次传入给定函数后返回的值组成。参见{{jsxref("Array.prototype.map()")}}。
    {{jsxref("TypedArray.move", "Float64Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
    {{jsxref("TypedArray.copyWithin", "Float64Array.prototype.copyWithin()")}}以前的一个非标准版本。
    {{jsxref("TypedArray.reduce", "Float64Array.prototype.reduce()")}}
    -
    传入一个函数作为累加器,从左到右遍历,最终得到一个值。 参见{{jsxref("Array.prototype.reduce()")}}。
    +
    传入一个函数作为累加器,从左到右遍历,最终得到一个值。参见{{jsxref("Array.prototype.reduce()")}}。
    {{jsxref("TypedArray.reduceRight", "Float64Array.prototype.reduceRight()")}}
    传入一个函数作为累加器,从右到左遍历,最终得到一个值。参见{{jsxref("Array.prototype.reduceRight()")}}。
    {{jsxref("TypedArray.reverse", "Float64Array.prototype.reverse()")}}
    @@ -112,7 +112,7 @@

    方法

    {{jsxref("TypedArray.subarray", "Float64Array.prototype.subarray()")}}
    从给定的起始位置返回一个新的Float64Array 。
    {{jsxref("TypedArray.values", "Float64Array.prototype.values()")}}
    -
    返回一个包含所有数组元素的数组遍历器对象。 参见{{jsxref("Array.prototype.values()")}}。
    +
    返回一个包含所有数组元素的数组遍历器对象。参见{{jsxref("Array.prototype.values()")}}。
    {{jsxref("TypedArray.toLocaleString", "Float64Array.prototype.toLocaleString()")}}
    返回一个代表数组和其元素的本地化格式字符串。参见{{jsxref("Array.prototype.toLocaleString()")}}。
    {{jsxref("TypedArray.toString", "Float64Array.prototype.toString()")}}
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/function/apply/index.md b/files/zh-cn/web/javascript/reference/global_objects/function/apply/index.md index 56ec9d46dfabdd..c3cb8036b37dda 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/function/apply/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/function/apply/index.md @@ -44,7 +44,7 @@ apply(thisArg, argsArray) `apply` 与 {{jsxref("Function.call", "call()")}} 非常相似,不同之处在于提供参数的方式。`apply` 使用参数数组而不是一组参数列表。`apply` 可以使用数组字面量(array literal),如 `fun.apply(this, ['eat', 'bananas'])`,或数组对象,如 `fun.apply(this, new Array('eat', 'bananas'))`。 -你也可以使用 {{jsxref("Functions/arguments", "arguments")}} 对象作为 `argsArray` 参数。`arguments` 是一个函数的局部变量。 它可以被用作被调用对象的所有未指定的参数。这样,你在使用 apply 函数的时候就不需要知道被调用对象的所有参数。你可以使用 arguments 来把所有的参数传递给被调用对象。被调用对象接下来就负责处理这些参数。 +你也可以使用 {{jsxref("Functions/arguments", "arguments")}} 对象作为 `argsArray` 参数。`arguments` 是一个函数的局部变量。它可以被用作被调用对象的所有未指定的参数。这样,你在使用 apply 函数的时候就不需要知道被调用对象的所有参数。你可以使用 arguments 来把所有的参数传递给被调用对象。被调用对象接下来就负责处理这些参数。 从 ECMAScript 第 5 版开始,可以使用任何种类的类数组对象,就是说只要有一个 `length` 属性和 `(0..length-1)` 范围的整数属性。例如现在可以使用 {{domxref("NodeList")}} 或一个自己定义的类似 `{'length': 2, '0': 'eat', '1': 'bananas'}` 形式的对象。 @@ -116,7 +116,7 @@ let min = minOfArray([5, 6, 2, 3, 7]); ### 使用 apply 来链接构造器 -你可以使用 apply 来链接一个对象{{jsxref("Operators/new", "构造器", "", 1)}},类似于 Java。在接下来的例子中我们会创建一个全局 {{jsxref("Global_Objects/Function")}} 对象的 `construct` 方法 ,来使你能够在构造器中使用一个类数组对象而非参数列表。 +你可以使用 apply 来链接一个对象{{jsxref("Operators/new", "构造器", "", 1)}},类似于 Java。在接下来的例子中我们会创建一个全局 {{jsxref("Global_Objects/Function")}} 对象的 `construct` 方法,来使你能够在构造器中使用一个类数组对象而非参数列表。 ```js Function.prototype.construct = function (aArgs) { diff --git a/files/zh-cn/web/javascript/reference/global_objects/function/bind/index.html b/files/zh-cn/web/javascript/reference/global_objects/function/bind/index.html index 0e0a85afb92be8..587ae6fcbff773 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/function/bind/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/function/bind/index.html @@ -26,7 +26,7 @@

    参数

    thisArg
    -
    调用绑定函数时作为 this 参数传递给目标函数的值。 如果使用{{jsxref("Operators/new", "new")}}运算符构造绑定函数,则忽略该值。当使用 bindsetTimeout 中创建一个函数(作为回调提供)时,作为 thisArg 传递的任何原始值都将转换为 object。如果 bind 函数的参数列表为空,或者thisArgnullundefined,执行作用域的 this 将被视为新函数的 thisArg
    +
    调用绑定函数时作为 this 参数传递给目标函数的值。如果使用{{jsxref("Operators/new", "new")}}运算符构造绑定函数,则忽略该值。当使用 bindsetTimeout 中创建一个函数(作为回调提供)时,作为 thisArg 传递的任何原始值都将转换为 object。如果 bind 函数的参数列表为空,或者thisArgnullundefined,执行作用域的 this 将被视为新函数的 thisArg
    arg1, arg2, ...
    当目标函数被调用时,被预置入绑定函数的参数列表中的参数。
    @@ -113,7 +113,7 @@

    偏函数

    // 37 + 5 = 42 var result3 = addThirtySeven(5, 10); -// 37 + 5 = 42 ,第二个参数被忽略 +// 37 + 5 = 42,第二个参数被忽略

    配合 setTimeout

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/function/length/index.html b/files/zh-cn/web/javascript/reference/global_objects/function/length/index.html index 699cce58442f7e..791152ea319d7b 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/function/length/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/function/length/index.html @@ -25,11 +25,11 @@

    描述

    Function 构造器的属性

    -

    {{jsxref("Function")}} 构造器本身也是个Function。他的 length 属性值为 1 。该属性 Writable: false, Enumerable: false, Configurable: true.

    +

    {{jsxref("Function")}} 构造器本身也是个Function。他的 length 属性值为 1。该属性 Writable: false, Enumerable: false, Configurable: true.

    Function.prototype 对象的属性

    -

     {{jsxref("Function.prototype")}}  对象的 length 属性值为 0 。

    +

     {{jsxref("Function.prototype")}}  对象的 length 属性值为 0。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/function/name/index.html b/files/zh-cn/web/javascript/reference/global_objects/function/name/index.html index 51e1295b79af71..6611af7715e907 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/function/name/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/function/name/index.html @@ -118,14 +118,14 @@

    类中的函数名称

    }
    -

    使用static name()方法Foo.name不再保存实际的类名称,而是引用name()函数对象。 ES2015 语法中的上述类定义将在 Chrome 或 Firefox 中运行,类似于 ES5 语法中的以下代码段:

    +

    使用static name()方法Foo.name不再保存实际的类名称,而是引用name()函数对象。ES2015 语法中的上述类定义将在 Chrome 或 Firefox 中运行,类似于 ES5 语法中的以下代码段:

    function Foo() {}
     Object.defineProperty(Foo, 'name', { writable: true });
     Foo.name = function() {};
     
    -

    通过fooInstance.constructor.name获取fooInstance类不会给我们所有的类名,而是静态类方法的引用。 例如:

    +

    通过fooInstance.constructor.name获取fooInstance类不会给我们所有的类名,而是静态类方法的引用。例如:

    var fooInstance = new Foo();
     console.log(fooInstance.constructor.name); // logs function name()
    @@ -182,7 +182,7 @@

    JavaScript 压缩和 minifiers

    }
    -

    在未压缩版本中,程序运行到真实分支并打印'foo' is an instance of 'Foo'。 而在压缩版本中,它的行为不同,并且进入 else 分支。如果您依赖于Function.name,就像上面的示例一样,确保您的构建管道不会更改函数名称,也不要假定函数具有特定的名称。

    +

    在未压缩版本中,程序运行到真实分支并打印'foo' is an instance of 'Foo'。而在压缩版本中,它的行为不同,并且进入 else 分支。如果您依赖于Function.name,就像上面的示例一样,确保您的构建管道不会更改函数名称,也不要假定函数具有特定的名称。

    规范

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/generator/next/index.html b/files/zh-cn/web/javascript/reference/global_objects/generator/next/index.html index afd195ac89e442..8f4aa6542a7b86 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/generator/next/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/generator/next/index.html @@ -35,7 +35,7 @@

    返回值

    • 如果迭代器超过迭代序列的末尾,则值为 true。 在这种情况下,value 可选地指定迭代器的返回值。
    • -
    • 如果迭代器能够生成序列中的下一个值,则值为 false。 这相当于没有完全指定 done 属性。
    • +
    • 如果迭代器能够生成序列中的下一个值,则值为 false。这相当于没有完全指定 done 属性。
  • value - 迭代器返回的任意的 JavaScript 值。当 done 的值为 true 时可以忽略该值。
  • diff --git a/files/zh-cn/web/javascript/reference/global_objects/generator/throw/index.html b/files/zh-cn/web/javascript/reference/global_objects/generator/throw/index.html index 69164ace5b45e1..70118c737b358d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/generator/throw/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/generator/throw/index.html @@ -34,7 +34,7 @@

    返回值

    • 如果迭代器已经返回了迭代序列的末尾,则值为 true。在这种情况下,可以指定迭代器 value 的返回值。
    • -
    • 如果迭代能够继续生产在序列中的下一个值,则值为 false。 这相当与不指定 done 属性的值。
    • +
    • 如果迭代能够继续生产在序列中的下一个值,则值为 false。这相当与不指定 done 属性的值。
  • value - 迭代器返回的任何 JavaScript 值。当 done 是 true 的时候可以省略。
  • diff --git a/files/zh-cn/web/javascript/reference/global_objects/infinity/index.html b/files/zh-cn/web/javascript/reference/global_objects/infinity/index.html index 20836d878b56a0..6824b80133a522 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/infinity/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/infinity/index.html @@ -19,7 +19,7 @@

    描述

    Infinity 的初始值是 {{jsxref("Number.POSITIVE_INFINITY")}}。Infinity(正无穷大)大于任何值。

    -

    该值的意义与数学无穷大略有不同。 有关详细信息,请参见{{jsxref("Number.POSITIVE_INFINITY")}}。

    +

    该值的意义与数学无穷大略有不同。有关详细信息,请参见{{jsxref("Number.POSITIVE_INFINITY")}}。

    在 ECMAScript 5 的规范中, Infinity 是只读的(实现于 JavaScript 1.8.5 / Firefox 4)。

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/int8array/index.html b/files/zh-cn/web/javascript/reference/global_objects/int8array/index.html index 844ef95c29a107..ce190dde2199eb 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/int8array/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/int8array/index.html @@ -113,7 +113,7 @@

    方法

    {{jsxref("TypedArray.values", "Int8Array.prototype.values()")}}
    返回一个数组迭代器对象,该迭代器会包含所有数组元素的值。参照 {{jsxref("Array.prototype.values()")}}
    {{jsxref("TypedArray.toLocaleString", "Int8Array.prototype.toLocaleString()")}}
    -
    返回一个由所有数组元素组合而成的本地化后的字符串. See also {{jsxref("Array.prototype.toLocaleString()")}}.
    +
    返回一个由所有数组元素组合而成的本地化后的字符串。See also {{jsxref("Array.prototype.toLocaleString()")}}.
    {{jsxref("TypedArray.toString", "Int8Array.prototype.toString()")}}
    返回一个由所有数组元素组合而成的字符串。参照 {{jsxref("Array.prototype.toString()")}}
    {{jsxref("TypedArray.@@iterator", "Int8Array.prototype[@@iterator]()")}}
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html index 5eca5dacf01329..16967e558adc02 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/collator/index.html @@ -21,13 +21,13 @@

    参数

    locales
    -

    可选。缩写语言代码 (BCP 47 language tag,例如: cmn-Hans-CN) 的字符串或者这些字符串组成的数组. 关于参数 locales 的一般形式和解释请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}. 下面的这些 Unicode 扩展键也是被允许的:

    +

    可选。缩写语言代码 (BCP 47 language tag,例如:cmn-Hans-CN) 的字符串或者这些字符串组成的数组. 关于参数 locales 的一般形式和解释请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}. 下面的这些 Unicode 扩展键也是被允许的:

    co
    -
    某些区域设置的变体归类。 可能的值包括:“big5han”,“dict”,“direct”,“ducet”,“gb2312”,“phonebk”,“phonetic”,“pinyin”,“reformed”,“searchjl”,“stroke” “,”unihan“。值“standard” 和 “search” 被忽略; 它们被 options 属性用法替换(详见下文)。
    +
    某些区域设置的变体归类。可能的值包括:“big5han”,“dict”,“direct”,“ducet”,“gb2312”,“phonebk”,“phonetic”,“pinyin”,“reformed”,“searchjl”,“stroke” “,”unihan“。值“standard”和“search”被忽略; 它们被 options 属性用法替换(详见下文)。
    kn
    -
    是否应使用数字对照,使得 “1”<“2”<“10”。 可能的值为 “true” 和 “false”。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。
    +
    是否应使用数字对照,使得“1”<“2”<“10”。可能的值为“true”和“false”。此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。
    kf
    首先排序大写或者小写。可能的值为 “upper”,“lower” 或 “false”(使用区域设置的默认值)。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。
    @@ -40,24 +40,24 @@

    参数

    localeMatcher
    使用的 local 的匹配算法。可能的值有 "lookup" 和 "best fit"; 默认值是 "best fit". 有关此选项的信息,请参见{{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.
    usage
    -
    比较是用于排序还是用于搜索匹配的字符串。 可能的值为 “sort” 和 “search”; 默认为 “sort”。
    +
    比较是用于排序还是用于搜索匹配的字符串。可能的值为“sort”和“search”; 默认为“sort”。
    sensitivity
    -

    字符串中的哪些差异应导致结果值为非零 (non-zero)。 可能的值有:

    +

    字符串中的哪些差异应导致结果值为非零 (non-zero)。可能的值有:

    • "base": 只有字母不同的字母比较不相等。例子:a ≠ b, a = á, a = A。
    • "accent": 只有不同的基本字母或重音符号和其他变音符号的字符串比较为不相等。 例如:a ≠ b, a ≠ á, a = A。
    • "case": 只有不同的基本字母或大小写的字符串比较不相等。 Examples: a ≠ b, a = á, a ≠ A。
    • -
    • "variant": 字符串的字母,口音和其他变音符号、或不同大小写比较不相等。 也可以考虑其他差异。例如: a ≠ b, a ≠ á, a ≠ A.
    • +
    • "variant": 字符串的字母,口音和其他变音符号、或不同大小写比较不相等。也可以考虑其他差异。例如: a ≠ b, a ≠ á, a ≠ A.

    "variant" 的默认值使用 "sort"; 它的 locale 依赖于使用 "search".

    ignore­Punctua­tion
    -
    是否应忽略标点。 可能的值为 true 和 false; 默认值为 false。
    +
    是否应忽略标点。可能的值为 true 和 false; 默认值为 false。
    numeric
    -
    是否应使用数字对照,使得 “1”<“2”<“10”。 可能的值为 “true” 和 “false”。默认值为 “false” 。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。实现不需要支持此属性。
    +
    是否应使用数字对照,使得“1”<“2”<“10”。可能的值为“true”和“false”。默认值为“false” 。此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。实现不需要支持此属性。
    caseFirst
    首先排序大写或者小写。可能的值为 “upper”,“lower” 或 “false”(使用区域设置的默认值)。 此选项可以通过 options 属性或通过 Unicode 扩展 key 设置; 如果两者都提供,options 属性优先。实现不需要支持此属性。
    @@ -107,7 +107,7 @@

    基本用法

    console.log(new Intl.Collator().compare('a', 'a')); // → 0 -

    请注意,上述代码中显示的结果可能会因浏览器和浏览器版本而异。 这是因为值是实现特定的。 也就是说,规范仅需要前后值为负和正。

    +

    请注意,上述代码中显示的结果可能会因浏览器和浏览器版本而异。这是因为值是实现特定的。也就是说,规范仅需要前后值为负和正。

    使用 locales

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/index.html index 1b70b5c0840d3b..efa1b4c09b967f 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/datetimeformat/index.html @@ -55,7 +55,7 @@

    参数

  • hour, minute
  • -

    实现可能支持其他的子集,并通过对所有可用的子集对比找到最匹配的子集。通过 formatMatcher 属性可以设置两种算法用于对比和选择子集:  完全匹配"basic"算法  和 一种依赖于“best fit”算法的实现。

    +

    实现可能支持其他的子集,并通过对所有可用的子集对比找到最匹配的子集。通过 formatMatcher 属性可以设置两种算法用于对比和选择子集: 完全匹配"basic"算法  和 一种依赖于“best fit”算法的实现。

    weekday
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/index.html index 6660e504f6de74..dc50f89f7be755 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/intl/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/index.html @@ -63,15 +63,15 @@

    locales 参数

    语言区域判定

    -

    locales 参数,在除去所有的 Unicode 扩展之后,会被转化成来自应用的优先请求。运行时拿它和可用的语言区域做对比然后选择出最合适的一个。有两种匹配算法:“查找” 匹配遵循 BCP 47 中指定的查找算法;“最佳命中” 匹配器会让运行时至少提供一个语言区域,但合适请求的结果可能会比查找算法的要多。如果应用没有提供一个 locales 参数,或者运行时没有一个匹配请求的语言区域,那么会使用运行时默认的语言区域。匹配器可以使用 options 参数的一个属性来进行选择(见下方)。

    +

    locales 参数,在除去所有的 Unicode 扩展之后,会被转化成来自应用的优先请求。运行时拿它和可用的语言区域做对比然后选择出最合适的一个。有两种匹配算法:“查找”匹配遵循 BCP 47 中指定的查找算法;“最佳命中”匹配器会让运行时至少提供一个语言区域,但合适请求的结果可能会比查找算法的要多。如果应用没有提供一个 locales 参数,或者运行时没有一个匹配请求的语言区域,那么会使用运行时默认的语言区域。匹配器可以使用 options 参数的一个属性来进行选择(见下方)。

    -

    如果选中的语言标记有一个 Unicode 扩展子字符串,这个扩展会用于自定义构造对象或者方法的行为。每一个构造函数或者方法仅支持 Unicode 扩展定义的 key 的一个子集,和依赖于语言标记的支持的值。例如,“co”这个 key(collation)只在 {{jsxref("Collator")}} 中支持,它的值 “phonebk” 只在德语中支持。

    +

    如果选中的语言标记有一个 Unicode 扩展子字符串,这个扩展会用于自定义构造对象或者方法的行为。每一个构造函数或者方法仅支持 Unicode 扩展定义的 key 的一个子集,和依赖于语言标记的支持的值。例如,“co”这个 key(collation)只在 {{jsxref("Collator")}} 中支持,它的值“phonebk”只在德语中支持。

    options 参数

    options 参数必须是一个对象,其属性值在不同的构造函数和方法中会有所变化。如果 options 参数未提供或者为 undefined,所有的属性值则使用默认的。

    -

    所有语言敏感的构造函数和方法都支持的一个属性是:localeMatcher 属性,它的值必须是字符串 “lookup” 或者 “best fit”,用于选择上边描述的语言区域匹配算法。

    +

    所有语言敏感的构造函数和方法都支持的一个属性是:localeMatcher 属性,它的值必须是字符串“lookup”或者“best fit”,用于选择上边描述的语言区域匹配算法。

    规范

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/listformat/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/listformat/index.html index dfb77e7b8854b9..6a8d5561f7438f 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/intl/listformat/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/listformat/index.html @@ -29,12 +29,12 @@

    参数

    可选的.。符合 BCP 47 语言标注的字符串或字符串数组。locales 参数的一般形式和相关解释,请参阅 {{jsxref("Global_Objects/Intl", "Intl page", "#Locale_identification_and_negotiation", 1)}}.

    options
    -
    可选的。 拥有下面所列属性中任意几个或全部的对象: +
    可选的。拥有下面所列属性中任意几个或全部的对象:
    • localeMatcher
      指定要使用的本地匹配算法。可选的值有"lookup" 和 "best fit";默认情况下使用"best fit"。该参数的更多信息,请参考Intl page.
    • type
      - 消息输出的格式。可选的值有用于替代基于“且”关系列表的"conjunction" (默认值, 例如: A, B, and C), 或者用于替代基于“或”关系列表的 "disjunction"(例如: A, B, or C),以及用于替代带计量单位的值列表的"unit" (例如: 5 pounds, 12 ounces).
    • + 消息输出的格式。可选的值有用于替代基于“且”关系列表的"conjunction" (默认值,例如: A, B, and C), 或者用于替代基于“或”关系列表的 "disjunction"(例如: A, B, or C),以及用于替代带计量单位的值列表的"unit" (例如: 5 pounds, 12 ounces).
    • style
      被格式化消息的长度。可选值有:"long" (默认值,例如:A, B, and C)、"short" 或者 "narrow" (例如:A, B, C)。 当style 的值为narrow 时,type 属性的值只能取值unit
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/index.html b/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/index.html index 73bffe0820e160..5f0285d80a2af9 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/intl/numberformat/index.html @@ -21,7 +21,7 @@

    参数

    locales
    -

    可选。缩写语言代码(BCP 47 language tag,例如: cmn-Hans-CN)的字符串或者这些字符串组成的数组. 关于参数 locales 的一般形式和解释请参见Intl page. 下面的这些 Unicode 扩展键也是被允许的:

    +

    可选。缩写语言代码(BCP 47 language tag,例如:cmn-Hans-CN)的字符串或者这些字符串组成的数组. 关于参数 locales 的一般形式和解释请参见Intl page. 下面的这些 Unicode 扩展键也是被允许的:

    译者注:下面扩展的使用方式是 language[-scripts][-region]-u-nu-*,例如:zh-u-nu-hanidec(表示中文十进制数字) 

    @@ -45,13 +45,13 @@

    参数

    localeMatcher
    使用的 local 的匹配算法。可能的值有 "lookup 和 "best fit"; 默认值是 "best fit". 有关此选项更多的信息,请参见 {{jsxref("Global_Objects/Intl", "Intl page", "#Locale_negotiation", 1)}}.
    style
    -
    要使用的格式样式,默认为 “decimal”。
    +
    要使用的格式样式,默认为“decimal”。
    numberingSystem {{Experimental_inline}}
    编号系统。可能的值包括:"arab","arabext"," bali","beng","deva","fullwide"," gujr","guru","hanidec","khmr"," knda","laoo", "latn","limb","mlym"," mong","mymr","orya","tamldec"," telu","thai","tibt"。
    unit{{Experimental_inline}}
    unit 格式中使用的单位,可能的值为在 UTS #35, Part 2, Section 6 定义的核心单元标识符。已从完整列表中选择了一个单位子集以用于 ECMAScript。可以将成对的简单单位与 “ -per-” 连接以组成一个复合单位。没有默认值;如果 style“unit”,必须提供unit 属性。
    unitDisplay{{Experimental_inline}}
    -
    unit 格式化中使用的单位格式化样式,默认值为“ short”。“long” (e.g., 16 litres)、“short“ (e.g., 16 l)、”narrow“ (e.g., 16l)
    +
    unit 格式化中使用的单位格式化样式,默认值为“short”。“long” (e.g., 16 litres)、“short“ (e.g., 16 l)、”narrow“ (e.g., 16l)
    currency
    在货币格式化中使用的货币符号. 可能的值是ISO的货币代码 (the ISO 4217 currency codes,) 例如 "USD" 表示美元,"EUR" 表示欧元,或者 "CNY"是人民币 — 更多请参考 Current currency & funds code list。没有默认值,如果 style“currency”,必须提 currency 属性。
    currencyDisplay
    @@ -152,7 +152,7 @@

    使用locales

    // 通过编号系统中的 nu 扩展键请求,例如:中文十进制数字 console.log(new Intl.NumberFormat('zh-Hans-CN-u-nu-hanidec').format(number)); -// → 一二三,四五六.七八九 +// → 一二三,四五六。七八九 //当请求的语言不被支持,例如巴里,包含一个回滚语言印尼,这时候就会使用印尼语 console.log(new Intl.NumberFormat(['ban', 'id']).format(number)); diff --git a/files/zh-cn/web/javascript/reference/global_objects/isnan/index.html b/files/zh-cn/web/javascript/reference/global_objects/isnan/index.html index 6067d09c2a0894..49d7b3fdb8a741 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/isnan/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/isnan/index.html @@ -32,7 +32,7 @@

    描述

    isNaN 函数的必要性

    -

    与 JavaScript 中其他的值不同,{{jsxref("Global_Objects/NaN", "NaN")}}不能通过相等操作符(== 和 ===)来判断 ,因为 NaN == NaNNaN === NaN 都会返回 false。 因此,isNaN 就很有必要了。

    +

    与 JavaScript 中其他的值不同,{{jsxref("Global_Objects/NaN", "NaN")}}不能通过相等操作符(== 和 ===)来判断,因为 NaN == NaNNaN === NaN 都会返回 false。因此,isNaN 就很有必要了。

    NaN 值的产生

    @@ -46,7 +46,7 @@

    令人费解的怪异行为

    下一个版本的 ECMAScript (ES2015) 包含{{jsxref("Number.isNaN()")}}函数。通过Number.isNaN(x)来检测变量x是否是一个NaN将会是一种可靠的做法。然而,在缺少Number.isNaN函数的情况下,通过表达式(x != x) 来检测变量 x是否是NaN会更加可靠。

    -

    一个isNaN的 polyfill 可以理解为(这个 polyfill 利用了NaN自身永不相等于自身这一特征 ):

    +

    一个isNaN的 polyfill 可以理解为(这个 polyfill 利用了NaN自身永不相等于自身这一特征):

    var isNaN = function(value) {
         var n = Number(value);
    @@ -76,7 +76,7 @@ 

    示例

    isNaN(new Date().toString()); // true isNaN("blabla") // true: "blabla"不能转换成数值 - // 转换成数值失败, 返回 NaN + // 转换成数值失败,返回 NaN

    有用的特殊行为

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/json/index.html b/files/zh-cn/web/javascript/reference/global_objects/json/index.html index bbe60b3df638e8..d3aaa96c95dade 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/json/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/json/index.html @@ -36,7 +36,7 @@

    JavaScript Object Notation

    - + diff --git a/files/zh-cn/web/javascript/reference/global_objects/map/map/index.html b/files/zh-cn/web/javascript/reference/global_objects/map/map/index.html index 0b7679b171938d..b74d51eb470002 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/map/map/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/map/map/index.html @@ -23,7 +23,7 @@

    参数

    iterable
    -
    Iterable 可以是一个{{jsxref("Array", "数组")}}或者其他 iterable 对象,其元素为键值对 (两个元素的数组,例如: [[ 1, 'one' ],[ 2, 'two' ]])。 每个键值对都会添加到新的 Map。null 会被当做 undefined。
    +
    Iterable 可以是一个{{jsxref("Array", "数组")}}或者其他 iterable 对象,其元素为键值对 (两个元素的数组,例如:[[ 1, 'one' ],[ 2, 'two' ]])。 每个键值对都会添加到新的 Map。null 会被当做 undefined。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/math/abs/index.html b/files/zh-cn/web/javascript/reference/global_objects/math/abs/index.html index 7b075d2aa8abb3..630217fb1c355a 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/math/abs/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/math/abs/index.html @@ -5,7 +5,7 @@ ---
    {{JSRef("Global_Objects", "Math")}}
    -

    Math.abs(x) 函数返回指定数字 “x“ 的绝对值。如下:

    +

    Math.abs(x) 函数返回指定数字“x“的绝对值。如下:

    Math.abs(x)=|x|={xifx0-xifx<0{\mathtt{\operatorname{Math.abs}(x)}} = {|x|} = \begin{cases} x & \text{if} \quad x \geq 0 \\ -x & \text{if} \quad x < 0 \end{cases}

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/math/pow/index.html b/files/zh-cn/web/javascript/reference/global_objects/math/pow/index.html index c280e81b67931a..a4b664c4565558 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/math/pow/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/math/pow/index.html @@ -34,7 +34,7 @@

    使用 Math.pow

    return Math.pow(x,y) } -

    如果 x 是 2 ,且 y 是 7,则 raisePower 函数返回 128(2 的 7 次幂)。

    +

    如果 x 是 2,且 y 是 7,则 raisePower 函数返回 128(2 的 7 次幂)。

    规范

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/math/random/index.html b/files/zh-cn/web/javascript/reference/global_objects/math/random/index.html index 5ede5b0a14a331..2337d83a473a5d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/math/random/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/math/random/index.html @@ -29,7 +29,7 @@

    返回值

    示例

    -

    请注意,由于 JavaScript 中的数字是 IEEE 754 浮点数字,具有最近舍入( round-to-nearest-even)的行为,因此以下函数的范围 (不包括Math.random() 本身) 并不准确。如果选择了非常大的边界 (2^53 或更高), 在极罕见的情况下会计算通常 - 排除(usually-excluded)的上界。(注:round-to-nearest-even 采用最近舍入的去偶数舍入的方式,对.5 的舍入上,采用取偶数的方式)

    +

    请注意,由于 JavaScript 中的数字是 IEEE 754 浮点数字,具有最近舍入(round-to-nearest-even)的行为,因此以下函数的范围 (不包括Math.random() 本身) 并不准确。如果选择了非常大的边界 (2^53 或更高), 在极罕见的情况下会计算通常 - 排除(usually-excluded)的上界。(注:round-to-nearest-even 采用最近舍入的去偶数舍入的方式,对.5 的舍入上,采用取偶数的方式)

    得到一个大于等于 0,小于 1 之间的随机数

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/math/round/index.html b/files/zh-cn/web/javascript/reference/global_objects/math/round/index.html index 7b7c8f99e71d35..ddbe4bea1a75a5 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/math/round/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/math/round/index.html @@ -27,7 +27,7 @@

    返回值

    描述

    -

    如果参数的小数部分大于 0.5,则舍入到相邻的绝对值更大的整数。 如果参数的小数部分小于 0.5,则舍入到相邻的绝对值更小的整数。如果参数的小数部分恰好等于 0.5,则舍入到相邻的在正无穷(+∞)方向上的整数。注意,与很多其他语言中的round() 函数不同,Math.round() 并不总是舍入到远离 0 的方向(尤其是在负数的小数部分恰好等于 0.5 的情况下)。

    +

    如果参数的小数部分大于 0.5,则舍入到相邻的绝对值更大的整数。如果参数的小数部分小于 0.5,则舍入到相邻的绝对值更小的整数。如果参数的小数部分恰好等于 0.5,则舍入到相邻的在正无穷(+∞)方向上的整数。注意,与很多其他语言中的round() 函数不同,Math.round() 并不总是舍入到远离 0 的方向(尤其是在负数的小数部分恰好等于 0.5 的情况下)。

    因为 round() 是 Math 的静态方法,你应该直接使用 Math.round(),而不是作为你创建的 Math 对象的一个实例方法来使用(Math没有构造函数)。

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/index.html index 8729e14c43dc55..ba9a2f96e2790b 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/number/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/number/index.html @@ -168,7 +168,7 @@

    Specifications

    - + @@ -178,7 +178,7 @@

    Specifications

    - + diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/negative_infinity/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/negative_infinity/index.html index 88189e6bf78622..d03262c3207100 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/number/negative_infinity/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/number/negative_infinity/index.html @@ -22,7 +22,7 @@

    描述

  • NEGATIVE_INFINITY 除以 NEGATIVE_INFINITY 或 POSITIVE_INFINITY 是 NaN
  • 任何数除以 NEGATIVE_INFINITY 为 0。
  • -

    为了成功返回一个有限值,你可能会使用 Number.NEGATIVE_INFINITY 属性来判断是否显示一个条件错误 。然而 {{jsxref("Global_Objects/isFinite", "isFinite")}} 方法更适合这种情况。

    +

    为了成功返回一个有限值,你可能会使用 Number.NEGATIVE_INFINITY 属性来判断是否显示一个条件错误。然而 {{jsxref("Global_Objects/isFinite", "isFinite")}} 方法更适合这种情况。

    示例

    下例中,赋值给变量 smallNumber 一个明显小于 JavaScript 中的最小值的值。当 if 语句执行时,smallNumber 值为 "-Infinity",因此在继续执行代码前,smallNumber 被设为一个更容易管理的值。

    var smallNumber = (-Number.MAX_VALUE) * 2
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/parseint/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/parseint/index.html
    index 5a7ee226967ad8..2ebdfa82c5a6cf 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/number/parseint/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/number/parseint/index.html
    @@ -23,7 +23,7 @@ 

    参数

    {{page("en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt", "Parameters")}} 

    -

    参数 string:要解析的值。 如果此参数不是字符串,则使用 ToString 抽象操作将其转换为字符串。忽略此参数中的前导空格。
    +

    参数 string:要解析的值。如果此参数不是字符串,则使用 ToString 抽象操作将其转换为字符串。忽略此参数中的前导空格。
    参数 radix:一个介于 2 到 36 之间的整数,代表字符串的基数 (数学数字系统中的基)。小心 - 这并不是默认为 10。

    返回值

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/positive_infinity/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/positive_infinity/index.html index 8e572bf740e6bf..231a292aca74b0 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/number/positive_infinity/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/number/positive_infinity/index.html @@ -34,7 +34,7 @@

    描述

    示例

    -

    下例中,赋值给变量 bigNumber 一个大于 JavaScript 中最大值的值。当 if 语句执行时,变量 bigNumber 值为 "Infinity", 因此在继续执行代码前,为变量 bigNumber 设置一个容易管理的值。

    +

    下例中,赋值给变量 bigNumber 一个大于 JavaScript 中最大值的值。当 if 语句执行时,变量 bigNumber 值为 "Infinity",因此在继续执行代码前,为变量 bigNumber 设置一个容易管理的值。

    var bigNumber = Number.MAX_VALUE * 2
     if (bigNumber == Number.POSITIVE_INFINITY) {
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.html
    index 443ed58c52036a..4612e36f5fc97a 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.html
    @@ -32,7 +32,7 @@ 

    异常

    {{jsxref("Global_Objects/RangeError", "RangeError")}}
    -
    如果 fractionDigits 太小或太大将会抛出该错误。介于 0 和 20(包括 20)之间的值不会引起 RangeError 。 执行环境也可以支持更大或更小范围。
    +
    如果 fractionDigits 太小或太大将会抛出该错误。介于 0 和 20(包括 20)之间的值不会引起 RangeError 。执行环境也可以支持更大或更小范围。
    {{jsxref("Global_Objects/TypeError", "TypeError")}}
    如果该方法在一个非数值类型对象上调用。
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/tofixed/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/tofixed/index.html index b238e14d52b817..905faef1942490 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/number/tofixed/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/number/tofixed/index.html @@ -35,7 +35,7 @@

    抛出异常

    描述

    -

    一个数值的字符串表现形式,不使用指数记数法,而是在小数点后有 digits(注:digits 具体值取决于传入参数)位数字。该数值在必要时进行四舍五入,另外在必要时会用 0 来填充小数部分,以便小数部分有指定的位数。 如果数值大于 1e+21,该方法会简单调用 {{jsxref("Number.prototype.toString()")}}并返回一个指数记数法格式的字符串。

    +

    一个数值的字符串表现形式,不使用指数记数法,而是在小数点后有 digits(注:digits 具体值取决于传入参数)位数字。该数值在必要时进行四舍五入,另外在必要时会用 0 来填充小数部分,以便小数部分有指定的位数。如果数值大于 1e+21,该方法会简单调用 {{jsxref("Number.prototype.toString()")}}并返回一个指数记数法格式的字符串。

    警告:浮点数不能精确地用二进制表示所有小数。这可能会导致意外的结果,例如 0.1 + 0.2 === 0.3 返回 false .

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/tolocalestring/index.html b/files/zh-cn/web/javascript/reference/global_objects/number/tolocalestring/index.html index 5701c27547da7c..73be2a7464744c 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/number/tolocalestring/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/number/tolocalestring/index.html @@ -90,7 +90,7 @@

    使用 locales

    // nu 扩展字段要求编号系统,e.g. 中文十进制 console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec')); -// → 一二三,四五六.七八九 +// → 一二三,四五六。七八九 // 当请求不支持的语言时,例如巴厘语,加入一个备用语言,比如印尼语 console.log(number.toLocaleString(['ban', 'id'])); diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/defineproperty/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/defineproperty/index.html index 7137dcc1374b25..e0561f757d7337 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/defineproperty/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/defineproperty/index.html @@ -512,7 +512,7 @@

    重定义数组 Arr

    Internet Explorer 8 特别备注

    -

    Internet Explorer 8 实现了 Object.defineProperty() 方法,但只能在 DOM 对象上使用。 需要注意的一些事情:

    +

    Internet Explorer 8 实现了 Object.defineProperty() 方法,但只能在 DOM 对象上使用。需要注意的一些事情:

    • 尝试在原生对象上使用 Object.defineProperty() 会报错。
    • diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/fromentries/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/fromentries/index.html index d7b9c4686563ee..1a7c2a7471287b 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/fromentries/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/fromentries/index.html @@ -36,7 +36,7 @@

      示例

       Map 转化为 Object

      -

      通过 Object.fromEntries, 可以将 {{jsxref("Map")}} 转换为 {{jsxref("Object")}}:

      +

      通过 Object.fromEntries,可以将 {{jsxref("Map")}} 转换为 {{jsxref("Object")}}:

      const map = new Map([ ['foo', 'bar'], ['baz', 42] ]);
       const obj = Object.fromEntries(map);
      @@ -45,7 +45,7 @@ 

       Map 转化为 Object

      Array 转化为 Object

      -

      通过 Object.fromEntries, 可以将 {{jsxref("Array")}} 转换为 {{jsxref("Object")}}:

      +

      通过 Object.fromEntries,可以将 {{jsxref("Array")}} 转换为 {{jsxref("Object")}}:

      const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
       const obj = Object.fromEntries(arr);
      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html
      index 6ba01598fb2666..c6f049e7f36a89 100644
      --- a/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html
      +++ b/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html
      @@ -93,7 +93,7 @@ 

      注意事项

      在 ES5 中,如果该方法的第一个参数不是对象(而是原始类型),那么就会产生出现 {{jsxref("TypeError")}}。而在 ES2015,第一个的参数不是对象的话就会被强制转换为对象。

      Object.getOwnPropertyDescriptor('foo', 0);
      -// 类型错误: "foo" 不是一个对象  // ES5 code
      +// 类型错误:"foo" 不是一个对象  // ES5 code
       
       Object.getOwnPropertyDescriptor('foo', 0);
       // Object returned by ES2015 code: {
      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html
      index 52875fee26330c..5d31d86710e435 100644
      --- a/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html
      +++ b/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html
      @@ -39,7 +39,7 @@ 

      浅拷贝一个对象

      创建子类

      -

      创建子类的典型方法是定义子类,将其原型设置为超类的实例,然后在该实例上定义属性。这么写很不优雅,特别是对于 getters 和 setter 而言。 相反,您可以使用此代码设置原型:

      +

      创建子类的典型方法是定义子类,将其原型设置为超类的实例,然后在该实例上定义属性。这么写很不优雅,特别是对于 getters 和 setter 而言。相反,您可以使用此代码设置原型:

      function superclass() {}
       superclass.prototype = {
      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html
      index ef1b0ba5097bd7..212a5003e1f27d 100644
      --- a/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html
      +++ b/files/zh-cn/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html
      @@ -29,7 +29,7 @@ 

      返回值

      描述

      -

      与{{jsxref("Object.getOwnPropertyNames()")}}类似,您可以将给定对象的所有符号属性作为 Symbol 数组获取。 请注意,{{jsxref("Object.getOwnPropertyNames()")}}本身不包含对象的 Symbol 属性,只包含字符串属性。

      +

      与{{jsxref("Object.getOwnPropertyNames()")}}类似,您可以将给定对象的所有符号属性作为 Symbol 数组获取。请注意,{{jsxref("Object.getOwnPropertyNames()")}}本身不包含对象的 Symbol 属性,只包含字符串属性。

      因为所有的对象在初始化的时候不会包含任何的 Symbol,除非你在对象上赋值了 Symbol 否则Object.getOwnPropertySymbols()只会返回一个空的数组。

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/index.html index effed823f34f1f..932c9e53b2efe6 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/index.html @@ -37,7 +37,7 @@

      描述

      从一个对象上删除一个属性

      -

      Object 自身没有提供方法删除其自身属性(Map 中的 {{jsxref("Map.prototype.delete()")}} 可以删除自身属性 )为了删除对象上的属性,必须使用 delete 操作符

      +

      Object 自身没有提供方法删除其自身属性(Map 中的 {{jsxref("Map.prototype.delete()")}} 可以删除自身属性)为了删除对象上的属性,必须使用 delete 操作符

      构造函数

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/isextensible/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/isextensible/index.html index 1007aa031e6e86..a51fb62ea516cd 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/isextensible/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/isextensible/index.html @@ -51,7 +51,7 @@

      例子

      注意

      -

      在 ES5 中,如果参数不是一个对象类型,将抛出一个 {{jsxref("TypeError")}} 异常。在 ES6 中, non-object 参数将被视为一个不可扩展的普通对象,因此会返回 false 。

      +

      在 ES5 中,如果参数不是一个对象类型,将抛出一个 {{jsxref("TypeError")}} 异常。在 ES6 中,non-object 参数将被视为一个不可扩展的普通对象,因此会返回 false。

      Object.isExtensible(1);
       // TypeError: 1 is not an object (ES5 code)
      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/issealed/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/issealed/index.html
      index a805472cff24b6..dea0955bddcede 100644
      --- a/files/zh-cn/web/javascript/reference/global_objects/object/issealed/index.html
      +++ b/files/zh-cn/web/javascript/reference/global_objects/object/issealed/index.html
      @@ -61,12 +61,12 @@ 

      例子

      Object.isExtensible(sealed); // === false // 一个密封对象也可以是一个冻结对象,但不是必须的。 -Object.isFrozen(sealed); // === true ,所有的属性都是不可写的 +Object.isFrozen(sealed); // === true,所有的属性都是不可写的 var s2 = Object.seal({ p: 3 }); -Object.isFrozen(s2); // === false, 属性"p"可写 +Object.isFrozen(s2); // === false,属性"p"可写 var s3 = Object.seal({ get p() { return 0; } }); -Object.isFrozen(s3); // === true ,访问器属性不考虑可写不可写,只考虑是否可配置
      +Object.isFrozen(s3); // === true,访问器属性不考虑可写不可写,只考虑是否可配置

      注意

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/preventextensions/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/preventextensions/index.html index 117c879d345e4c..bce74764445e92 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/preventextensions/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/preventextensions/index.html @@ -35,7 +35,7 @@

      描述

      Object.preventExtensions()仅阻止添加自身的属性。但其对象类型的原型依然可以添加新的属性。

      -

      该方法使得目标对象的 [[prototype]]  不可变;任何重新赋值 [[prototype]] 操作都会抛出 TypeError 。这种行为只针对内部的 [[prototype]] 属性, 目标对象的其它属性将保持可变。

      +

      该方法使得目标对象的 [[prototype]]  不可变;任何重新赋值 [[prototype]] 操作都会抛出 TypeError 。这种行为只针对内部的 [[prototype]] 属性,目标对象的其它属性将保持可变。

      一旦将对象变为不可扩展的对象,就再也不能使其可扩展。

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/proto/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/proto/index.html index 88701506158441..8e344bab7a8be8 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/proto/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/proto/index.html @@ -89,7 +89,7 @@

      语法

      obj.myname();//myname
      -

      注意:这是两个下划线,后面是五个字符的 “proto”,后面再跟两个下划线。

      +

      注意:这是两个下划线,后面是五个字符的“proto”,后面再跟两个下划线。

      描述

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/tolocalestring/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/tolocalestring/index.html index bb3ec0e75686b9..fa5596dfd53511 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/tolocalestring/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/tolocalestring/index.html @@ -25,7 +25,7 @@

      描述

      {{jsxref("Object")}} toLocaleString 返回调用 {{jsxref("Object.toString", "toString()")}} 的结果。

      -

      该函数提供给对象一个通用的toLocaleString 方法,即使不是全部都可以使用它。 见下面的列表。

      +

      该函数提供给对象一个通用的toLocaleString 方法,即使不是全部都可以使用它。见下面的列表。

      覆盖 toLocaleString 的对象

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/object/valueof/index.html b/files/zh-cn/web/javascript/reference/global_objects/object/valueof/index.html index eb267b0093381a..5b6f2b2a69ba5c 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/object/valueof/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/object/valueof/index.html @@ -23,7 +23,7 @@

      描述

      JavaScript 调用 valueOf 方法将对象转换为原始值。你很少需要自己调用 valueOf 方法;当遇到要预期的原始值的对象时,JavaScript 会自动调用它。

      -

      默认情况下,valueOf 方法由 {{jsxref("Object")}} 后面的每个对象继承。 每个内置的核心对象都会覆盖此方法以返回适当的值。如果对象没有原始值,则 valueOf 将返回对象本身。

      +

      默认情况下,valueOf 方法由 {{jsxref("Object")}} 后面的每个对象继承。每个内置的核心对象都会覆盖此方法以返回适当的值。如果对象没有原始值,则 valueOf 将返回对象本身。

      JavaScript 的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的 valueOf() 方法的返回值和返回值类型均可能不同。

      @@ -88,7 +88,7 @@

      覆盖自定义对象的 myNumberType.valueOf()

      -

      备注:字符串上下文中的对象通过 {{jsxref("Object.toString", "toString()")}}方法转换,这与使用valueOf转换为原始字符串的 {{jsxref("String")}} 对象不同。所有对象都能转换成一个 “[object 类型]” 这种格式的字符串。但是很多对象不能转换为数字,布尔或函数。

      +

      备注:字符串上下文中的对象通过 {{jsxref("Object.toString", "toString()")}}方法转换,这与使用valueOf转换为原始字符串的 {{jsxref("String")}} 对象不同。所有对象都能转换成一个“[object 类型]”这种格式的字符串。但是很多对象不能转换为数字,布尔或函数。

      示例

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/parseint/index.html b/files/zh-cn/web/javascript/reference/global_objects/parseint/index.html index 31cef705a97db0..db6c56a2af7a33 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/parseint/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/parseint/index.html @@ -97,7 +97,7 @@

      例子:使用 parseInt

      以下例子均返回 NaN:

      parseInt("Hello", 8); // 根本就不是数值
      -parseInt("546", 2);   // 除了 “0、1” 外,其它数字都不是有效二进制数字
      +parseInt("546", 2);   // 除了“0、1”外,其它数字都不是有效二进制数字
       

      以下例子均返回 -15

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/promise/allsettled/index.html b/files/zh-cn/web/javascript/reference/global_objects/promise/allsettled/index.html index 778eb014f6cc38..af127924ffd902 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/promise/allsettled/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/promise/allsettled/index.html @@ -32,7 +32,7 @@

      返回值

      一旦所指定的 promises 集合中每一个 promise 已经完成,无论是成功的达成或被拒绝,未决议的 {{jsxref("Promise")}}将被异步完成。那时,所返回的 promise 的处理器将传入一个数组作为输入,该数组包含原始 promises 集中每个 promise 的结果。

      -

      对于每个结果对象,都有一个 status 字符串。如果它的值为 fulfilled,则结果对象上存在一个 value 。如果值为 rejected,则存在一个 reason 。value(或 reason )反映了每个 promise 决议(或拒绝)的值。

      +

      对于每个结果对象,都有一个 status 字符串。如果它的值为 fulfilled,则结果对象上存在一个 value 。如果值为 rejected,则存在一个 reason 。value(或 reason)反映了每个 promise 决议(或拒绝)的值。

      标准

      diff --git a/files/zh-cn/web/javascript/reference/global_objects/promise/any/index.html b/files/zh-cn/web/javascript/reference/global_objects/promise/any/index.html index 52f548bd8ac857..be29dd7f543957 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/promise/any/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/promise/any/index.html @@ -33,7 +33,7 @@

      返回值

      • 如果传入的参数是一个空的可迭代对象,则返回一个 已失败(already rejected) 状态的 Promise
      • 如果传入的参数不包含任何 promise,则返回一个 异步完成 (asynchronously resolved)的 Promise
      • -
      • 其他情况下都会返回一个处理中(pending) 的 Promise。 只要传入的迭代对象中的任何一个 promise 变成成功(resolve)状态,或者其中的所有的 promises 都失败,那么返回的 promise 就会 异步地(当调用栈为空时) 变成成功/失败(resolved/reject)状态。
      • +
      • 其他情况下都会返回一个处理中(pending) 的 Promise。只要传入的迭代对象中的任何一个 promise 变成成功(resolve)状态,或者其中的所有的 promises 都失败,那么返回的 promise 就会 异步地(当调用栈为空时) 变成成功/失败(resolved/reject)状态。

      说明

      @@ -79,7 +79,7 @@

      First to fulfil

      console.log(value); // pFast fulfils first }) -// 期望输出: "很快完成" +// 期望输出:"很快完成"

      Rejections with AggregateError

      @@ -93,7 +93,7 @@

      Rejections with AggregateError

      Promise.any([pErr]).catch((err) => { console.log(err); }) -// 期望输出: "AggregateError: No Promise in Promise.any was resolved" +// 期望输出:"AggregateError: No Promise in Promise.any was resolved"

    显示第一张已加载的图片

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/promise/catch/index.html b/files/zh-cn/web/javascript/reference/global_objects/promise/catch/index.html index ec38afbd34ac39..f3081929d7d6d7 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/promise/catch/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/promise/catch/index.html @@ -23,7 +23,7 @@

    参数

    onRejected
    -
    当 Promise 被 rejected 时,被调用的一个{{jsxref("Function")}}。 该函数拥有一个参数:reason    rejection 的原因。如果 onRejected 抛出一个错误或返回一个本身失败的 Promise ,  通过 catch() 返回的 Promise 被 rejected;否则,它将显示为成功(resolved)。
    +
    当 Promise 被 rejected 时,被调用的一个{{jsxref("Function")}}。 该函数拥有一个参数:reason    rejection 的原因。如果 onRejected 抛出一个错误或返回一个本身失败的 Promise,  通过 catch() 返回的 Promise 被 rejected;否则,它将显示为成功(resolved)。

    返回值

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/promise/index.md b/files/zh-cn/web/javascript/reference/global_objects/promise/index.md index 70da2352ec06ee..62a41f15650d59 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/promise/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/promise/index.md @@ -215,7 +215,7 @@ window.addEventListener("message", (event) => { - : 返回一个状态为已拒绝的 `Promise` 对象,并将给定的失败信息传递给对应的处理函数。 - {{jsxref("Promise.resolve", "Promise.resolve(value)")}} - - : 返回一个状态由给定 value 决定的 `Promise` 对象。如果该值是 thenable(即,带有 `then` 方法的对象),返回的Promise 对象的最终状态由 then 方法执行结果决定;否则,返回的 Promise 对象状态为已兑现,并且将该 value 传递给对应的 then 方法。 + - : 返回一个状态由给定 value 决定的 `Promise` 对象。如果该值是 thenable(即,带有 `then` 方法的对象),返回的 Promise 对象的最终状态由 then 方法执行结果决定;否则,返回的 Promise 对象状态为已兑现,并且将该 value 传递给对应的 then 方法。 通常而言,如果你不知道一个值是否是 promise 对象,使用 {{JSxRef("Promise.resolve", "Promise.resolve(value)")}} 来返回一个 Promise 对象,这样就能将该 value 以 promise 对象形式使用。 diff --git a/files/zh-cn/web/javascript/reference/global_objects/promise/resolve/index.html b/files/zh-cn/web/javascript/reference/global_objects/promise/resolve/index.html index 3771bb40a86e99..9560257f6fb1fb 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/promise/resolve/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/promise/resolve/index.html @@ -9,7 +9,7 @@ ---
    {{JSRef}}
    -
    Promise.resolve(value)方法返回一个以给定值解析后的 {{jsxref("Promise")}} 对象。如果这个值是一个 promise ,那么将返回这个 promise ;如果这个值是 thenable(即带有 {{jsxref("Promise.then", "\"then\" ")}} 方法),返回的 promise 会“跟随”这个 thenable 的对象,采用它的最终状态;否则返回的 promise 将以此值完成。此函数将类 promise 对象的多层嵌套展平。
    +
    Promise.resolve(value)方法返回一个以给定值解析后的 {{jsxref("Promise")}} 对象。如果这个值是一个 promise,那么将返回这个 promise;如果这个值是 thenable(即带有 {{jsxref("Promise.then", "\"then\" ")}} 方法),返回的 promise 会“跟随”这个 thenable 的对象,采用它的最终状态;否则返回的 promise 将以此值完成。此函数将类 promise 对象的多层嵌套展平。

    警告:不要在解析为自身的 thenable 上调用Promise.resolve。这将导致无限递归,因为它试图展平无限嵌套的 promise。一个例子是将它与 Angular 中的异步管道一起使用。在此处了解更多信息。

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/proxy/index.html b/files/zh-cn/web/javascript/reference/global_objects/proxy/index.html index dff096cf5b0562..ff8f580fcd7d22 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/proxy/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/proxy/index.html @@ -142,10 +142,10 @@

    验证

    // 100 person.age = 'young'; -// 抛出异常: Uncaught TypeError: The age is not an integer +// 抛出异常:Uncaught TypeError: The age is not an integer person.age = 300; -// 抛出异常: Uncaught RangeError: The age seems invalid +// 抛出异常:Uncaught RangeError: The age seems invalid

    扩展构造函数

    @@ -279,7 +279,7 @@

    通过属性查找数组中 { name: 'Thunderbird', type: 'mailer' } ], { get: function(obj, prop) { - // 默认行为是返回属性值, prop ?通常是一个整数 + // 默认行为是返回属性值,prop ?通常是一个整数 if (prop in obj) { return obj[prop]; } diff --git a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.html b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.html index bd945a7b64768b..e3564e7e9d8e4b 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.html @@ -52,7 +52,7 @@

    不变量

    如果违背了以下的不变量,proxy 会抛出 {{jsxref("TypeError")}}:

      -
    • 如果目标对象不可扩展, 将不能添加属性。
    • +
    • 如果目标对象不可扩展,将不能添加属性。
    • 不能添加或者修改一个属性为不可配置的,如果它不作为一个目标对象的不可配置的属性存在的话。
    • 如果目标对象存在一个对应的可配置属性,这个属性可能不会是不可配置的。
    • 如果一个属性在目标对象中存在对应的属性,那么 Object.defineProperty(target, prop, descriptor) 将不会抛出异常。
    • diff --git a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/index.html b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/index.html index 897a2e9954f29d..ec4ceb1e25eaf9 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/index.html @@ -22,7 +22,7 @@

      参数

      描述

      -

      我们可以使用 Proxy() 构造器来创建一个新的 Proxy 对象。 构造器接收两个主要参数:

      +

      我们可以使用 Proxy() 构造器来创建一个新的 Proxy 对象。构造器接收两个主要参数:

      • target 被代理的对象
      • diff --git a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.html b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.html index 0a14cd92c8e030..7bed05dd153674 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.html @@ -26,7 +26,7 @@

        语法

        参数

        -

        下列参数将会被传递给 isExtensible方法。 this 绑定在 handler 对象上。

        +

        下列参数将会被传递给 isExtensible方法。this 绑定在 handler 对象上。

        target
        diff --git a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.html b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.html index de2febb9f4993e..e2c9f0500d9058 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.html @@ -57,7 +57,7 @@

        约束

        • ownKeys 的结果必须是一个数组。
        • 数组的元素类型要么是一个 {{jsxref("String")}} ,要么是一个 {{jsxref("Symbol")}}.
        • -
        • 结果列表必须包含目标对象的所有不可配置(non-configurable )、自有(own)属性的 key.
        • +
        • 结果列表必须包含目标对象的所有不可配置(non-configurable)、自有(own)属性的 key.
        • 如果目标对象不可扩展,那么结果列表必须包含目标对象的所有自有(own)属性的 key,不能有其它值。
        diff --git a/files/zh-cn/web/javascript/reference/global_objects/reflect/construct/index.html b/files/zh-cn/web/javascript/reference/global_objects/reflect/construct/index.html index 66ef6cb2b5fa65..06401c7f03743c 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/reflect/construct/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/reflect/construct/index.html @@ -5,7 +5,7 @@ ---
        {{JSRef}}
        -

        Reflect.construct() 方法的行为有点像 new 操作符 构造函数 , 相当于运行 new target(...args).

        +

        Reflect.construct() 方法的行为有点像 new 操作符 构造函数 ,相当于运行 new target(...args).

        语法

        @@ -20,7 +20,7 @@

        参数

        argumentsList
        类数组,目标构造函数调用时的参数。
        newTarget {{optional_inline}}
        -
        作为新创建对象的原型对象的constructor属性, 参考 new.target 操作符,默认值为target。
        +
        作为新创建对象的原型对象的constructor属性,参考 new.target 操作符,默认值为target。

        返回值

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/reflect/defineproperty/index.html b/files/zh-cn/web/javascript/reference/global_objects/reflect/defineproperty/index.html index 6524839fe795f8..6b4936fbfe9318 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/reflect/defineproperty/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/reflect/defineproperty/index.html @@ -41,7 +41,7 @@

        描述

        Reflect.defineProperty 方法允许精确添加或修改对象上的属性。更多的细节请参阅类似的{{jsxref("Object.defineProperty")}} 。

        -

        备注:Object.defineProperty 返回一个对象,或者如果属性没有被成功定义,抛出一个 {{jsxref("TypeError")}} 。 相比之下,Reflect.defineProperty方法只返回一个 {{jsxref("Boolean")}} ,来说明该属性是否被成功定义。

        +

        备注:Object.defineProperty 返回一个对象,或者如果属性没有被成功定义,抛出一个 {{jsxref("TypeError")}} 。相比之下,Reflect.defineProperty方法只返回一个 {{jsxref("Boolean")}} ,来说明该属性是否被成功定义。

        示例

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/reflect/getownpropertydescriptor/index.html b/files/zh-cn/web/javascript/reference/global_objects/reflect/getownpropertydescriptor/index.html index a9c4f7c1e44799..ccbb997c361978 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/reflect/getownpropertydescriptor/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/reflect/getownpropertydescriptor/index.html @@ -31,7 +31,7 @@

        异常

        描述

        -

        Reflect.getOwnPropertyDescriptor方法返回一个属性描述符,如果给定的属性存在于对象中,否则返回 {{jsxref("undefined")}} 。 与  {{jsxref("Object.getOwnPropertyDescriptor()")}} 的唯一不同在于如何处理非对象目标。

        +

        Reflect.getOwnPropertyDescriptor方法返回一个属性描述符,如果给定的属性存在于对象中,否则返回 {{jsxref("undefined")}} 。与  {{jsxref("Object.getOwnPropertyDescriptor()")}} 的唯一不同在于如何处理非对象目标。

        示例

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/reflect/has/index.html b/files/zh-cn/web/javascript/reference/global_objects/reflect/has/index.html index be9381620e13fc..2c4a69267dc7f6 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/reflect/has/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/reflect/has/index.html @@ -31,7 +31,7 @@

        异常

        描述

        -

        Reflect.has 用于检查一个对象是否拥有某个属性, 相当于in 操作符 。

        +

        Reflect.has 用于检查一个对象是否拥有某个属性,相当于in 操作符 。

        示例

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/reflect/index.html b/files/zh-cn/web/javascript/reference/global_objects/reflect/index.html index 4e0b0516bf9414..faafaad3be5580 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/reflect/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/reflect/index.html @@ -48,7 +48,7 @@

        静态方法

        {{jsxref("Reflect.set()", "Reflect.set(targetpropertyKeyvalue[, receiver])")}}
        将值分配给属性的函数。返回一个{{jsxref("Boolean")}},如果更新成功,则返回true
        {{jsxref("Reflect.setPrototypeOf()", "Reflect.setPrototypeOf(targetprototype)")}}
        -
        设置对象原型的函数。返回一个 {{jsxref("Boolean")}}, 如果更新成功,则返回true。
        +
        设置对象原型的函数。返回一个 {{jsxref("Boolean")}},如果更新成功,则返回true。

        Examples

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/reflect/preventextensions/index.html b/files/zh-cn/web/javascript/reference/global_objects/reflect/preventextensions/index.html index 82a85ecf84d12a..7240dbf3c37cca 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/reflect/preventextensions/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/reflect/preventextensions/index.html @@ -50,7 +50,7 @@

        使用 Reflect.preventExtension

        与 Object.preventExtensions() 的不同点

        -

        如果该方法的 target 参数不是一个对象(是原始值),那么将造成一个 {{jsxref("TypeError")}} 异常。 对于{{jsxref("Object.preventExtensions()")}} 方法, 非对象的 target 参数将被强制转换为对象。

        +

        如果该方法的 target 参数不是一个对象(是原始值),那么将造成一个 {{jsxref("TypeError")}} 异常。对于{{jsxref("Object.preventExtensions()")}} 方法,非对象的 target 参数将被强制转换为对象。

        Reflect.preventExtensions(1);
         // TypeError: 1 is not an object
        diff --git a/files/zh-cn/web/javascript/reference/global_objects/regexp/@@search/index.html b/files/zh-cn/web/javascript/reference/global_objects/regexp/@@search/index.html
        index 8dfb7513f7d5f5..db92b0549fb9d8 100644
        --- a/files/zh-cn/web/javascript/reference/global_objects/regexp/@@search/index.html
        +++ b/files/zh-cn/web/javascript/reference/global_objects/regexp/@@search/index.html
        @@ -22,7 +22,7 @@ 

        返回值

        整数
        -
        如果成功的话,[@@search]() 返回该正则模式的第一个匹配项的在字符串中的位置索引。否则将返回-1。
        +
        如果成功的话,[@@search]() 返回该正则模式的第一个匹配项的在字符串中的位置索引。否则将返回 -1。

        描述

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/regexp/compile/index.html b/files/zh-cn/web/javascript/reference/global_objects/regexp/compile/index.html index 437d85ab429443..53a9a8fa9d41e7 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/regexp/compile/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/regexp/compile/index.html @@ -18,7 +18,7 @@

        参数

        pattern
        -
        正则表达式的文本 。
        +
        正则表达式的文本。
        flags

        如果指定,标志可以具有以下值的任意组合:

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/regexp/exec/index.html b/files/zh-cn/web/javascript/reference/global_objects/regexp/exec/index.html index bdc65ccf0c29f9..727d8b40162687 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/regexp/exec/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/regexp/exec/index.html @@ -37,7 +37,7 @@

        返回值

        如果匹配成功,exec() 方法返回一个数组(包含额外的属性 index 和 input ,参见下方表格),并更新正则表达式对象的 {{jsxref("RegExp.lastIndex", "lastIndex")}} 属性。完全匹配成功的文本将作为返回数组的第一项,从第二项起,后续每项都对应正则表达式内捕获括号里匹配成功的文本。

        -

        如果匹配失败,exec() 方法返回 {{jsxref("null")}},并将 {{jsxref("RegExp.lastIndex", "lastIndex")}} 重置为 0 。

        +

        如果匹配失败,exec() 方法返回 {{jsxref("null")}},并将 {{jsxref("RegExp.lastIndex", "lastIndex")}} 重置为 0。

        描述

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/regexp/sticky/index.html b/files/zh-cn/web/javascript/reference/global_objects/regexp/sticky/index.html index 9659b67b4099b8..edf7033e0c660d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/regexp/sticky/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/regexp/sticky/index.html @@ -9,7 +9,7 @@ ---
        {{JSRef}}
        -

        sticky 属性反映了搜索是否具有粘性( 仅从正则表达式的 {{jsxref("RegExp.lastIndex", "lastIndex")}} 属性表示的索引处搜索 )。sticky 是正则表达式对象的只读属性。

        +

        sticky 属性反映了搜索是否具有粘性( 仅从正则表达式的 {{jsxref("RegExp.lastIndex", "lastIndex")}} 属性表示的索引处搜索)。sticky 是正则表达式对象的只读属性。

        {{EmbedInteractiveExample("pages/js/regexp-prototype-sticky.html", "taller")}}

        @@ -37,7 +37,7 @@

        使用带 sticky 标志的正

        锚定的 sticky 标志

        -

        火狐的 SpiderMonkey 引擎的几个版本有一个 bug,处理 ^ 断言和 sticky 标志时,会允许使用了 sticky 标志的表达式从 ^ 断言开始匹配,这是不对的。这个 bug 是在 Firefox 3.6 之后的某个版本引入的(which had the sticky flag but not the bug)并于 2015 年修复。 可能正因为这个 bug, ES2015 规范 特别指出

        +

        火狐的 SpiderMonkey 引擎的几个版本有一个 bug,处理 ^ 断言和 sticky 标志时,会允许使用了 sticky 标志的表达式从 ^ 断言开始匹配,这是不对的。这个 bug 是在 Firefox 3.6 之后的某个版本引入的(which had the sticky flag but not the bug)并于 2015 年修复。可能正因为这个 bug,ES2015 规范 特别指出

        当使用带有 y 标识的匹配模式时,^ 断言总是会匹配输入的开始位置或者(如果是多行模式)每一行的开始位置。

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/regexp/test/index.html b/files/zh-cn/web/javascript/reference/global_objects/regexp/test/index.html index 21de20b1cb6fda..1afaa0d08f4e73 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/regexp/test/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/regexp/test/index.html @@ -28,11 +28,11 @@

        参数

        返回值

        -

        如果正则表达式与指定的字符串匹配 ,返回true;否则false

        +

        如果正则表达式与指定的字符串匹配,返回true;否则false

        描述

        -

        当你想要知道一个正则表达式是否与指定的字符串匹配时,就可以使用 test()(类似于 {{jsxref("String.prototype.search()")}} 方法),差别在于 test 返回一个布尔值,而 search 返回索引(如果找到)或者-1(如果没找到);若想知道更多信息(然而执行比较慢),可使用{{jsxref("RegExp.prototype.exec()", "exec()")}} 方法(类似于 {{jsxref("String.prototype.match()")}} 方法)。 和 {{jsxref("RegExp.prototype.exec()", "exec()")}} (或者组合使用),一样,在相同的全局正则表达式实例上多次调用test将会越过之前的匹配。

        +

        当你想要知道一个正则表达式是否与指定的字符串匹配时,就可以使用 test()(类似于 {{jsxref("String.prototype.search()")}} 方法),差别在于 test 返回一个布尔值,而 search 返回索引(如果找到)或者 -1(如果没找到);若想知道更多信息(然而执行比较慢),可使用{{jsxref("RegExp.prototype.exec()", "exec()")}} 方法(类似于 {{jsxref("String.prototype.match()")}} 方法)。和 {{jsxref("RegExp.prototype.exec()", "exec()")}} (或者组合使用),一样,在相同的全局正则表达式实例上多次调用test将会越过之前的匹配。

        示例

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/regexp/tosource/index.html b/files/zh-cn/web/javascript/reference/global_objects/regexp/tosource/index.html index 18f92ff02bc4f5..10cfb99ac38b87 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/regexp/tosource/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/regexp/tosource/index.html @@ -34,7 +34,7 @@

        描述

          -
        • 对于一个 RegExp 实例, toSource 返回代表该正则的字符串。
        • +
        • 对于一个 RegExp 实例,toSource 返回代表该正则的字符串。

        该方法通常由 JavaScript 内部隐含调用,而不会明确的出现在用户代码中。

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/set/entries/index.html b/files/zh-cn/web/javascript/reference/global_objects/set/entries/index.html index 5e64cd00690640..3e389891730e2c 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/set/entries/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/set/entries/index.html @@ -5,7 +5,7 @@ ---
        {{JSRef}}
        -

        entries() 方法返回一个新的迭代器对象 ,这个对象的元素是类似 [value, value] 形式的数组,value 是集合对象中的每个元素,迭代器对象元素的顺序即集合对象中元素插入的顺序。由于集合对象不像 Map 对象那样拥有 key,然而,为了与 Map 对象的 API 形式保持一致,故使得每一个 entry 的 key 和 value 都拥有相同的值,因而最终返回一个 [value, value] 形式的数组。

        +

        entries() 方法返回一个新的迭代器对象,这个对象的元素是类似 [value, value] 形式的数组,value 是集合对象中的每个元素,迭代器对象元素的顺序即集合对象中元素插入的顺序。由于集合对象不像 Map 对象那样拥有 key,然而,为了与 Map 对象的 API 形式保持一致,故使得每一个 entry 的 key 和 value 都拥有相同的值,因而最终返回一个 [value, value] 形式的数组。

        语法

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/set/index.html b/files/zh-cn/web/javascript/reference/global_objects/set/index.html index 05dd977e860f1a..eb1b327479749e 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/set/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/set/index.html @@ -19,7 +19,7 @@

        简述

        值的相等

        -

        因为 Set 中的值总是唯一的,所以需要判断两个值是否相等。在 ECMAScript 规范的早期版本中,这不是基于和===操作符中使用的算法相同的算法。具体来说,对于 Set,+0(+0 严格相等于 -0)和 -0 是不同的值。然而,在 ECMAScript 2015 规范中这点已被更改。有关详细信息,请参阅浏览器兼容性表中的 “Key equality for -0 and 0”。

        +

        因为 Set 中的值总是唯一的,所以需要判断两个值是否相等。在 ECMAScript 规范的早期版本中,这不是基于和===操作符中使用的算法相同的算法。具体来说,对于 Set,+0(+0 严格相等于 -0)和 -0 是不同的值。然而,在 ECMAScript 2015 规范中这点已被更改。有关详细信息,请参阅浏览器兼容性表中的“Key equality for -0 and 0”。

        另外,NaNundefined 都可以被存储在 Set 中,NaN 之间被视为相同的值(NaN 被认为是相同的,尽管 NaN !== NaN)。

        @@ -54,7 +54,7 @@

        实例方法

        {{jsxref("Set.delete", "Set.prototype.delete(value)")}}
        移除Set中与这个值相等的元素,返回 Set.prototype.has(value) 在这个操作前会返回的值(即如果该元素存在,返回 true,否则返回false)。Set.prototype.has(value) 在此后会返回 false
        {{jsxref("Set.prototype.entries()")}}
        -
        返回一个新的迭代器对象,该对象包含 Set 对象中的按插入顺序排列的所有元素的值的 [value, value] 数组。为了使这个方法和 Map 对象保持相似, 每个值的键和值相等。
        +
        返回一个新的迭代器对象,该对象包含 Set 对象中的按插入顺序排列的所有元素的值的 [value, value] 数组。为了使这个方法和 Map 对象保持相似,每个值的键和值相等。
        {{jsxref("Set.forEach", "Set.prototype.forEach(callbackFn[, thisArg])")}}
        按照插入顺序,为 Set 对象中的每一个值调用一次 callBackFn。如果提供了thisArg参数,回调中的 this 会是这个参数。
        {{jsxref("Set.has", "Set.prototype.has(value)")}}
        diff --git a/files/zh-cn/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html b/files/zh-cn/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html index c094dee9055992..8cbff7266b24ca 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/sharedarraybuffer/bytelength/index.html @@ -15,7 +15,7 @@

        语法

        描述

        -

        byteLength属性是一个访问者属性,其 set 访问者函数为 undefined,这意味着您只能读取此属性。 该值在构造共享数组时建立,并且无法更改。

        +

        byteLength属性是一个访问者属性,其 set 访问者函数为 undefined,这意味着您只能读取此属性。该值在构造共享数组时建立,并且无法更改。

        例子

        diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/blink/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/blink/index.html index cff578e64222e7..1661bdf3679e39 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/blink/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/blink/index.html @@ -48,7 +48,7 @@

        规范

    - + diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/bold/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/bold/index.html index d86fd7d05a1566..a85ced92cb44b3 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/bold/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/bold/index.html @@ -9,7 +9,7 @@ ---

    {{JSRef}} {{deprecated_header}}

    -

    bold() 方法会创建 HTML 元素 “b”,并将字符串加粗展示。

    +

    bold() 方法会创建 HTML 元素“b”,并将字符串加粗展示。

    语法

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/fromcharcode/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/fromcharcode/index.html index 60d3164598ad9c..fb712b03336388 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/fromcharcode/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/fromcharcode/index.html @@ -41,7 +41,7 @@

    返回补充字符

    因为 fromCharCode() 只作用于 16 位的值 (跟 \u 转义序列一样),为了返回一个补充字符,一个代理对是必须的。例如,String.fromCharCode(0xD83C, 0xDF03)\uD83C\uDF03 返回码点 U+1F303 "Night with Stars"。

    -

    While there is a mathematical relationship between the supplementary code point value (e.g. 0x1F303) and both surrogate values that represent it (e.g., 0xD83C and 0xDF03), it does require an extra step to either calculate or look up the surrogate pair values every time a supplementary code point is to be used. 因此,使用 {{jsxref("String.fromCodePoint()")}}(ES2015 标准下的一个方法)更方便, 这个方法允许你基于真实的码点返回补充字符。例如 String.fromCodePoint(0x1F303) 返回码点 U+1F303 "Night with Stars"。

    +

    While there is a mathematical relationship between the supplementary code point value (e.g. 0x1F303) and both surrogate values that represent it (e.g., 0xD83C and 0xDF03), it does require an extra step to either calculate or look up the surrogate pair values every time a supplementary code point is to be used. 因此,使用 {{jsxref("String.fromCodePoint()")}}(ES2015 标准下的一个方法)更方便,这个方法允许你基于真实的码点返回补充字符。例如 String.fromCodePoint(0x1F303) 返回码点 U+1F303 "Night with Stars"。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/index.html index ba0bf74cc82396..70344a87625b63 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/index.html @@ -118,7 +118,7 @@

    转义字符

    {{SpecName('ES1')}} {{Spec2('ES1')}}初始定义。 在 JavaScript 1.3 实施。初始定义。在 JavaScript 1.3 实施。
    {{SpecName('ES5.1', '#sec-15.9.5.41', 'Date.prototype.setUTCFullYear')}}
    数值禁止出现前导零( JSON.stringify 方法自动忽略前导零,而在 JSON.parse 方法中将会抛出 SyntaxError);如果有小数点,则后面至少跟着一位数字。禁止出现前导零(JSON.stringify 方法自动忽略前导零,而在 JSON.parse 方法中将会抛出 SyntaxError);如果有小数点,则后面至少跟着一位数字。
    字符串
    {{SpecName('ES1')}} {{Spec2('ES1')}}初始定义。 实现于 JavaScript 1.1.初始定义。实现于 JavaScript 1.1.
    {{SpecName('ES5.1', '#sec-15.7', 'Number')}}
    {{SpecName('ES6', '#sec-number-objects', 'Number')}} {{Spec2('ES6')}}新增了方法和属性: {{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}}新增了方法和属性:{{jsxref("Number.EPSILON", "EPSILON")}}, {{jsxref("Number.isFinite", "isFinite")}}, {{jsxref("Number.isInteger", "isInteger")}}, {{jsxref("Number.isNaN", "isNaN")}}, {{jsxref("Number.parseFloat", "parseFloat")}}, {{jsxref("Number.parseInt", "parseInt")}}
    {{SpecName('ESDraft', '#sec-number-objects', 'Number')}}
    {{SpecName('ES6', '#sec-string.prototype.blink', 'String.prototype.blink')}} {{Spec2('ES6')}}初始定义。在 JavaScript 1.0 中实现。 在(规范性)附件 B 中定义了用于 Web 浏览器的 ECMAScript 附加特性。初始定义。在 JavaScript 1.0 中实现。在(规范性)附件 B 中定义了用于 Web 浏览器的 ECMAScript 附加特性。
    {{SpecName('ESDraft', '#sec-string.prototype.blink', 'String.prototype.blink')}}
    -

    备注:和其他语言不同,javascript 的字符串不区分单引号和双引号,所以不论是单引号还是双引号的字符串,上面的转义字符都能运行 。

    +

    备注:和其他语言不同,javascript 的字符串不区分单引号和双引号,所以不论是单引号还是双引号的字符串,上面的转义字符都能运行。

    长字符串

    @@ -130,7 +130,7 @@

    长字符串

    "to wrap across multiple lines because " + "otherwise my code is unreadable.";
    -

    其二,可以在每行末尾使用反斜杠字符(“\”),以指示字符串将在下一行继续。确保反斜杠后面没有空格或任何除换行符之外的字符或缩进; 否则反斜杠将不会工作。 如下所示:

    +

    其二,可以在每行末尾使用反斜杠字符(“\”),以指示字符串将在下一行继续。确保反斜杠后面没有空格或任何除换行符之外的字符或缩进; 否则反斜杠将不会工作。如下所示:

    let longString = "This is a very long string which needs \
     to wrap across multiple lines because \
    @@ -143,11 +143,11 @@ 

    长字符串

    描述

    -

    字符串对于保存可以以文本形式表示的数据非常有用。 一些常用的字符串操作有:查询字符串长度,使用 + 和 += 运算符来构建和连接字符串,使用 indexOf 方法检查某一子字符串在父字符串中的位置,又或是使用 substring 方法提取从父字符串中提取子字符串。

    +

    字符串对于保存可以以文本形式表示的数据非常有用。一些常用的字符串操作有:查询字符串长度,使用 + 和 += 运算符来构建和连接字符串,使用 indexOf 方法检查某一子字符串在父字符串中的位置,又或是使用 substring 方法提取从父字符串中提取子字符串。

    从字符串中获取单个字符

    -

    获取字符串的某个字符有两种方法。 第一种是使用 {{jsxref("String.charAt", "charAt")}} 方法:

    +

    获取字符串的某个字符有两种方法。第一种是使用 {{jsxref("String.charAt", "charAt")}} 方法:

    return 'cat'.charAt(1); // returns "a"
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/indexof/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/indexof/index.html index f8e507073027ec..966a346b3092a9 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/indexof/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/indexof/index.html @@ -30,7 +30,7 @@

    参数

    searchValue
    -
    要被查找的字符串值。如果没有提供确切地提供字符串,searchValue 会被强制设置为 "undefined", 然后在当前字符串中查找这个值。举个例子:'undefined'.indexOf() 将会返回 0,因为 undefined 在位置 0 处被找到,但是 'undefine'.indexOf() 将会返回 -1 ,因为字符串 'undefined' 未被找到。
    +
    要被查找的字符串值。如果没有提供确切地提供字符串,searchValue 会被强制设置为 "undefined",然后在当前字符串中查找这个值。举个例子:'undefined'.indexOf() 将会返回 0,因为 undefined 在位置 0 处被找到,但是 'undefine'.indexOf() 将会返回 -1,因为字符串 'undefined' 未被找到。
    fromIndex {{optional_inline}}
    数字表示开始查找的位置。可以是任意整数,默认值为 0。如果 fromIndex 的值小于 0,或者大于 str.length ,那么查找分别从 0 和str.length 开始。(译者注:  fromIndex 的值小于 0,等同于为空情况; fromIndex 的值大于或等于 str.length ,那么结果会直接返回 -1 。)举个例子,'hello world'.indexOf('o', -5) 返回 4 ,因为它是从位置0处开始查找,然后 o 在位置4处被找到。另一方面,'hello world'.indexOf('o', 11) (或 fromIndex 填入任何大于11的值)将会返回 -1 ,因为开始查找的位置11处,已经是这个字符串的结尾了。
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/lastindexof/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/lastindexof/index.html index e3d3b389cebbe2..c058aa277bfc9b 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/lastindexof/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/lastindexof/index.html @@ -5,7 +5,7 @@ ---

     {{JSRef}}

    -

     lastIndexOf() 方法返回调用{{jsxref("String")}} 对象的指定值最后一次出现的索引,在一个字符串中的指定位置 fromIndex处从后向前搜索。如果没找到这个特定值则返回-1 。

    +

     lastIndexOf() 方法返回调用{{jsxref("String")}} 对象的指定值最后一次出现的索引,在一个字符串中的指定位置 fromIndex处从后向前搜索。如果没找到这个特定值则返回 -1。

    该方法将从尾到头地检索字符串 str,看它是否含有子串 searchValue。开始检索的位置在字符串的 fromIndex 处或字符串的结尾(没有指定 fromIndex 时)。如果找到一个 searchValue,则返回 searchValue 的第一个字符在 str 中的位置。str中的字符位置是从 0 开始的。

    @@ -24,7 +24,7 @@

    参数

    返回值

    -

    返回指定值最后一次出现的索引 (该索引仍是以从左至右 0 开始记数的),如果没找到则返回-1。

    +

    返回指定值最后一次出现的索引 (该索引仍是以从左至右 0 开始记数的),如果没找到则返回 -1。

    描述

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/localecompare/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/localecompare/index.html index e0664c647a4efb..00cb48bcc298ca 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/localecompare/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/localecompare/index.html @@ -29,7 +29,7 @@

    参数

    compareString
    用来比较的字符串
    locales
    -
    可选。用来表示一种或多种语言或区域的一个符合 BCP 47 标准的字符串或一个字符串数组。locales 参数的一般形式与解释,详情请参考 Intl page。 下列的 Unicode 扩展关键词是允许的:co为了某些地域多样的排序规则。可能的值包括: "big5han""dict""direct""ducet""gb2312""phonebk""phonetic""pinyin""reformed""searchjl""stroke""trad""unihan"。 "standard" 和"search" 这两个值是被忽略的; 它们被 options 的属性 usage 代替 (往下看)。kn指定数值排序是否应该被使用,像是这样 "1" < "2" < "10"。可能的值是 "true" 和 "false"。这个选项能被通过options 属性设置或通过 Unicode 扩展。假如两个都被设置了,则 options 优先。("language-region-u-kn-true|false")kf 指定是否优先对大写字母或小写字母排序。可能的值有 "upper""lower", 或 "false" (use the locale's default)。这个选项能被通过 options 属性设置或通过 Unicode 扩展。假如两个都被设置了,则 options 优先。("language-region-u-kf-upper|lower|false")
    +
    可选。用来表示一种或多种语言或区域的一个符合 BCP 47 标准的字符串或一个字符串数组。locales 参数的一般形式与解释,详情请参考 Intl page。下列的 Unicode 扩展关键词是允许的:co为了某些地域多样的排序规则。可能的值包括: "big5han""dict""direct""ducet""gb2312""phonebk""phonetic""pinyin""reformed""searchjl""stroke""trad""unihan"。 "standard" 和"search" 这两个值是被忽略的; 它们被 options 的属性 usage 代替 (往下看)。kn指定数值排序是否应该被使用,像是这样 "1" < "2" < "10"。可能的值是 "true" 和 "false"。这个选项能被通过options 属性设置或通过 Unicode 扩展。假如两个都被设置了,则 options 优先。("language-region-u-kn-true|false")kf 指定是否优先对大写字母或小写字母排序。可能的值有 "upper""lower", 或 "false" (use the locale's default)。这个选项能被通过 options 属性设置或通过 Unicode 扩展。假如两个都被设置了,则 options 优先。("language-region-u-kf-upper|lower|false")
    options

    可选。支持下列的一些或全部属性的一个对象:

    @@ -47,7 +47,7 @@

    参数

  • "base": 只有不同的字母字符串比较是不相等的。举个例子: a ≠ ba = áa = A.
  • "accent": 只有不同的字母或读音比较是不相等的。举个例子: a ≠ ba ≠ áa = A.
  • "case": 只有不同的字母或大小写比较是不相等的。举个例子: a ≠ ba = áa ≠ A.
  • -
  • "variant": 不同的字母或读音及其它有区别的标志或大小写都是不相等的, 还有其它的差异可能也会考虑到。举个例子: a ≠ ba ≠ áa ≠ A.
  • +
  • "variant": 不同的字母或读音及其它有区别的标志或大小写都是不相等的,还有其它的差异可能也会考虑到。举个例子: a ≠ ba ≠ áa ≠ A.
  • The default is "variant" for usage "sort"; it's locale dependent for usage "search".

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/match/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/match/index.html index ae46f46c089fda..ee656d65a9e0e7 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/match/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/match/index.html @@ -25,7 +25,7 @@

    返回值

    • 如果使用 g 标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。
    • -
    • 如果未使用 g 标志,则仅返回第一个完整匹配及其相关的捕获组(Array)。 在这种情况下,返回的项目将具有如下所述的其他属性。
    • +
    • 如果未使用 g 标志,则仅返回第一个完整匹配及其相关的捕获组(Array)。在这种情况下,返回的项目将具有如下所述的其他属性。

    附加属性

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.html index efac55314550bc..add8d20c58856d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/replace/index.html @@ -87,7 +87,7 @@

    使用字符串作为参数

    指定一个函数作为参数

    -

    你可以指定一个函数作为第二个参数。在这种情况下,当匹配执行后,该函数就会执行。 函数的返回值作为替换字符串。 (注意:上面提到的特殊替换参数在这里不能被使用。) 另外要注意的是,如果第一个参数是正则表达式,并且其为全局匹配模式,那么这个方法将被多次调用,每次匹配都会被调用。

    +

    你可以指定一个函数作为第二个参数。在这种情况下,当匹配执行后,该函数就会执行。函数的返回值作为替换字符串。 (注意:上面提到的特殊替换参数在这里不能被使用。) 另外要注意的是,如果第一个参数是正则表达式,并且其为全局匹配模式,那么这个方法将被多次调用,每次匹配都会被调用。

    下面是该函数的参数:

    @@ -124,7 +124,7 @@

    指定一个函数作为参数

    -

    (精确的参数个数依赖于 replace() 的第一个参数是否是一个正则表达式({{jsxref("RegExp")}})对象,以及这个正则表达式中指定了多少个括号子串,如果这个正则表达式里使用了命名捕获, 还会添加一个命名捕获的对象)

    +

    (精确的参数个数依赖于 replace() 的第一个参数是否是一个正则表达式({{jsxref("RegExp")}})对象,以及这个正则表达式中指定了多少个括号子串,如果这个正则表达式里使用了命名捕获,还会添加一个命名捕获的对象)

    下面的例子将会使 newString 变成 'abc - 12345 - #$*%'

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/replaceall/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/replaceall/index.html index 641624060f2099..bd80fc26b02698 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/replaceall/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/replaceall/index.html @@ -22,7 +22,7 @@

    语法

    const newStr = str.replaceAll(regexp|substr, newSubstr|function)
    -

    备注:当使用一个 `regex`时,您必须设置全局(“ g”)标志,
    +

    备注:当使用一个 `regex`时,您必须设置全局(“g”)标志,
    否则,它将引发 TypeError:“必须使用全局 RegExp 调用 replaceAll”。

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/small/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/small/index.html index 9415509cd95238..db8151afd4c48e 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/small/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/small/index.html @@ -49,7 +49,7 @@

    规范

    {{SpecName('ES6', '#sec-string.prototype.small', 'String.prototype.small')}} {{Spec2('ES6')}} - 初始定义。 在 JavaScript 1.0 中实现。在(规范性)附件 B 中定义了用于 Web 浏览器的附加 ECMAScript 特性。 + 初始定义。在 JavaScript 1.0 中实现。在(规范性)附件 B 中定义了用于 Web 浏览器的附加 ECMAScript 特性。 {{SpecName('ESDraft', '#sec-string.prototype.small', 'String.prototype.small')}} diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/split/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/split/index.html index 2fea03d0afe19f..d21ee37a8dbf23 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/split/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/split/index.html @@ -31,7 +31,7 @@

    参数

    separator
    -
    指定表示每个拆分应发生的点的字符串。separator 可以是一个字符串或正则表达式。 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在 str 中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将 str 原字符串中每个字符的数组形式返回。
    +
    指定表示每个拆分应发生的点的字符串。separator 可以是一个字符串或正则表达式。如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在 str 中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将 str 原字符串中每个字符的数组形式返回。
    limit
    一个整数,限定返回的分割片段数量。当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。如果在达到指定限制之前达到字符串的末尾,它可能仍然包含少于限制的条目。新数组中不返回剩下的文本。
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/strike/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/strike/index.html index 3bea6eba71c8aa..4fc016fe16ee40 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/strike/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/strike/index.html @@ -45,7 +45,7 @@

    规范

    {{SpecName('ES6', '#sec-string.prototype.strike', 'String.prototype.strike')}} {{Spec2('ES6')}} - 初始定义。在 JavaScript 1.0 中实现。 在(规范性)附件 B 中定义为用于 Web 浏览器的 ECMAScript 附加特性。 + 初始定义。在 JavaScript 1.0 中实现。在(规范性)附件 B 中定义为用于 Web 浏览器的 ECMAScript 附加特性。 {{SpecName('ESDraft', '#sec-string.prototype.strike', 'String.prototype.strike')}} diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/trimend/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/trimend/index.html index 7a7b38a4d0fe9d..406f1be5464a12 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/trimend/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/trimend/index.html @@ -32,7 +32,7 @@

    描述

    别名

    -

    为了与 {{jsxref("String.prototype.padEnd")}} 等函数保持一致,标准方法名称为trimEnd。 但是,出于 Web 兼容性原因,trimRight仍然是trimEnd的别名。 在某些引擎中,这意味着:

    +

    为了与 {{jsxref("String.prototype.padEnd")}} 等函数保持一致,标准方法名称为trimEnd。但是,出于 Web 兼容性原因,trimRight仍然是trimEnd的别名。在某些引擎中,这意味着:

    String.prototype.trimRight.name === "trimEnd";
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/trimstart/index.html b/files/zh-cn/web/javascript/reference/global_objects/string/trimstart/index.html index 655126befbd9fa..6efa99e480295d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/trimstart/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/string/trimstart/index.html @@ -35,7 +35,7 @@

    描述

    别名

    -

    为了与 {{jsxref("String.prototype.padStart")}} 等函数保持一致,标准方法名称为trimStart。 但是,出于 Web 兼容性原因,trimLeft 仍然是 trimStart 的别名。在某些引擎中,这意味着:

    +

    为了与 {{jsxref("String.prototype.padStart")}} 等函数保持一致,标准方法名称为trimStart。但是,出于 Web 兼容性原因,trimLeft 仍然是 trimStart 的别名。在某些引擎中,这意味着:

    String.prototype.trimLeft.name === "trimStart";
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/symbol/index.html b/files/zh-cn/web/javascript/reference/global_objects/symbol/index.html index a85764023e6ed7..bfe778f5037db4 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/symbol/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/symbol/index.html @@ -37,7 +37,7 @@

    描述

    var sym3 = Symbol('foo');
    -

    上面的代码创建了三个新的 symbol 类型。 注意,Symbol("foo") 不会强制将字符串 “foo” 转换成 symbol 类型。它每次都会创建一个新的 symbol 类型:

    +

    上面的代码创建了三个新的 symbol 类型。注意,Symbol("foo") 不会强制将字符串“foo”转换成 symbol 类型。它每次都会创建一个新的 symbol 类型:

    Symbol("foo") === Symbol("foo"); // false
    @@ -45,7 +45,7 @@

    描述

    var sym = new Symbol(); // TypeError
    -

    这会阻止创建一个显式的 Symbol 包装器对象而不是一个 Symbol 值。围绕原始数据类型创建一个显式包装器对象从 ECMAScript 6 开始不再被支持。 然而,现有的原始包装器对象,如 new Booleannew String以及new Number,因为遗留原因仍可被创建。

    +

    这会阻止创建一个显式的 Symbol 包装器对象而不是一个 Symbol 值。围绕原始数据类型创建一个显式包装器对象从 ECMAScript 6 开始不再被支持。然而,现有的原始包装器对象,如 new Booleannew String以及new Number,因为遗留原因仍可被创建。

    如果你真的想创建一个 Symbol 包装器对象 (Symbol wrapper object),你可以使用 Object() 函数:

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/symbol/isconcatspreadable/index.html b/files/zh-cn/web/javascript/reference/global_objects/symbol/isconcatspreadable/index.html index ee4ef8e1a175e4..e449451d4e0e8e 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/symbol/isconcatspreadable/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/symbol/isconcatspreadable/index.html @@ -34,7 +34,7 @@

    数组

    var alphaNumeric = alpha.concat(numeric); -console.log(alphaNumeric); // 结果: ['a', 'b', 'c', 1, 2, 3] +console.log(alphaNumeric); // 结果:['a', 'b', 'c', 1, 2, 3]

    设置Symbol.isConcatSpreadablefalse

    @@ -45,7 +45,7 @@

    数组

    numeric[Symbol.isConcatSpreadable] = false; var alphaNumeric = alpha.concat(numeric); -console.log(alphaNumeric); // 结果: ['a', 'b', 'c', [1, 2, 3] ] +console.log(alphaNumeric); // 结果:['a', 'b', 'c', [1, 2, 3] ]

    Array-like 对象

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/symbol/keyfor/index.html b/files/zh-cn/web/javascript/reference/global_objects/symbol/keyfor/index.html index db6fdf73445ce5..ce69d6aa3579cd 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/symbol/keyfor/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/symbol/keyfor/index.html @@ -17,7 +17,7 @@

    参数

    sym
    -
    必选参数,需要查找键值的某个 Symbol 。
    +
    必选参数,需要查找键值的某个 Symbol。

    返回值

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/symbol/tosource/index.html b/files/zh-cn/web/javascript/reference/global_objects/symbol/tosource/index.html index 3de64d052290ae..24b865e7a6782e 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/symbol/tosource/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/symbol/tosource/index.html @@ -20,13 +20,13 @@

    Description

    toSource 方法返回以下值:

    -

    对于内建Symbol 对象, toSource 返回以下字符串,表明源代码不可见:

    +

    对于内建Symbol 对象,toSource 返回以下字符串,表明源代码不可见:

    "function Symbol() {
        [native code]
     }"
    -

    对于Symbol 实例, toSource 返回代表源码的字符串。

    +

    对于Symbol 实例,toSource 返回代表源码的字符串。

    "Symbol()"
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/symbol/unscopables/index.html b/files/zh-cn/web/javascript/reference/global_objects/symbol/unscopables/index.html index ab6483defd8b1f..c0fe41dddeabe4 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/symbol/unscopables/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/symbol/unscopables/index.html @@ -16,15 +16,15 @@

    描述

    -

    可以在任何对象上定义 @@unscopables symbol (Symbol.unscopables),用于排除属性名称并与 with 环境绑定在一起作为词法变量公开。 请注意,如果使用 Strict mode,语句将不可用,并且可能也不需要 symbol。

    +

    可以在任何对象上定义 @@unscopables symbol (Symbol.unscopables),用于排除属性名称并与 with 环境绑定在一起作为词法变量公开。请注意,如果使用 Strict mode,语句将不可用,并且可能也不需要 symbol。

    -

    在 unscopables 对象上设置属性为 true,将使其 unscopable 并且因此该属性也将不会在词法环境变量中出现。 如果设置属性为 false ,则将使其可 scopable 并且该属性会出现在词法环境变量中。

    +

    在 unscopables 对象上设置属性为 true,将使其 unscopable 并且因此该属性也将不会在词法环境变量中出现。如果设置属性为 false ,则将使其可 scopable 并且该属性会出现在词法环境变量中。

    {{js_property_attributes(0,0,0)}}

    示例

    -

    下列的代码可兼容 ES5 及以下版本。然而,在 ECMAScript 2015 (ES6) 或其后续版本中,{{jsxref("Array.prototype.keys()")}} 方法才会出现。意味着内部 with 环境“关键字” 存在该方法,但变量中不会存在。 也就是说,当 unscopables symbol 被展示时,内置的unscopables 设置是由 {{jsxref("Array.@@unscopables", "Array.prototype[@@unscopables]")}} 展示并实现的, 一些 Array 的方法 将作为 scoped 放入 with 语句中。

    +

    下列的代码可兼容 ES5 及以下版本。然而,在 ECMAScript 2015 (ES6) 或其后续版本中,{{jsxref("Array.prototype.keys()")}} 方法才会出现。意味着内部 with 环境“关键字”存在该方法,但变量中不会存在。也就是说,当 unscopables symbol 被展示时,内置的unscopables 设置是由 {{jsxref("Array.@@unscopables", "Array.prototype[@@unscopables]")}} 展示并实现的, 一些 Array 的方法 将作为 scoped 放入 with 语句中。

    var keys = [];
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@iterator/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@iterator/index.html
    index b2af09c2ed4fa5..8994bbe203564b 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@iterator/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@iterator/index.html
    @@ -64,7 +64,7 @@ 

    浏览器兼容性

    {{Compat}} -

    [1] 从 Gecko 17 (Firefox 17 / Thunderbird 17 / SeaMonkey 2.14) 到 Gecko 26 (Firefox 26 / Thunderbird 26 / SeaMonkey 2.23 / Firefox OS 1.2) 使用 iterator 属性 (bug 907077),从 Gecko 27 到 Gecko 35 使用"@@iterator" 占位符。 在 Gecko 36 (Firefox 36 / Thunderbird 36 / SeaMonkey 2.33) 中,@@iterator Symbol 予以实现 (bug 918828)。

    +

    [1] 从 Gecko 17 (Firefox 17 / Thunderbird 17 / SeaMonkey 2.14) 到 Gecko 26 (Firefox 26 / Thunderbird 26 / SeaMonkey 2.23 / Firefox OS 1.2) 使用 iterator 属性 (bug 907077),从 Gecko 27 到 Gecko 35 使用"@@iterator" 占位符。在 Gecko 36 (Firefox 36 / Thunderbird 36 / SeaMonkey 2.33) 中,@@iterator Symbol 予以实现 (bug 918828)。

    See also

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@species/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@species/index.html index b115f593301443..df53401a364239 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@species/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/@@species/index.html @@ -26,7 +26,7 @@

    语法

    描述

    -

    species 访问器属性返回类型化数组对象的构造器。 子类的构造器可能会覆盖它来修改构造器的赋值。

    +

    species 访问器属性返回类型化数组对象的构造器。子类的构造器可能会覆盖它来修改构造器的赋值。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/filter/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/filter/index.html index 1685bdb6784e0d..3b9d4166723afc 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/filter/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/filter/index.html @@ -15,7 +15,7 @@

    参数

    callback
    -
    测试类型化数组每个元素的函数,以参数 (element, index, typedarray)调用。 如果返回 true则保留该元素,如果返回false则相反。
    +
    测试类型化数组每个元素的函数,以参数 (element, index, typedarray)调用。如果返回 true则保留该元素,如果返回false则相反。
    thisArg {{optional_inline}}
    可选,执行callback时作为this的值。
    @@ -40,7 +40,7 @@

    描述

    filter()不改变在其上调用的类型化数组。

    -

    filter处理的元素范围在callback调用之前就确定了。 在 filter调用之后添加到数组的元素不会由 callback访问。 如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是filter 访问它们时候的值。已删除的元素不会被访问。

    +

    filter处理的元素范围在callback调用之前就确定了。在 filter调用之后添加到数组的元素不会由 callback访问。如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是filter 访问它们时候的值。已删除的元素不会被访问。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/find/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/find/index.html index 409455ce738b52..83fe081070a9e8 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/find/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/find/index.html @@ -45,7 +45,7 @@

    描述

    find 不修改在其上调用的类型化数组。

    -

    find处理的元素范围在callback调用之前就确定了。 在 find调用之后添加到数组的元素不会由 callback访问。 如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是find 访问它们时候的值。已删除的元素不会被访问。

    +

    find处理的元素范围在callback调用之前就确定了。在 find调用之后添加到数组的元素不会由 callback访问。如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是find 访问它们时候的值。已删除的元素不会被访问。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/findindex/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/findindex/index.html index e1cfb40835a2ef..1fe93082fbcc4d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/findindex/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/findindex/index.html @@ -45,7 +45,7 @@

    描述

    findIndex 不修改在其上调用的类型化数组。

    -

    findIndex处理的元素范围在callback调用之前就确定了。 在 findIndex调用之后添加到数组的元素不会由 callback访问。 如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是findIndex 访问它们时候的值。已删除的元素不会被访问。

    +

    findIndex处理的元素范围在callback调用之前就确定了。在 findIndex调用之后添加到数组的元素不会由 callback访问。如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是findIndex 访问它们时候的值。已删除的元素不会被访问。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/foreach/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/foreach/index.html index 5d6e3ed39df995..d0a1fc3506d032 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/foreach/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/foreach/index.html @@ -5,7 +5,7 @@ ---
    {{JSRef}}
    -

    forEach()方法对类型化数组的每个元素调用提供的函数。 这个方法的算法和 {{jsxref("Array.prototype.forEach()")}}相同。 TypedArray 是这里的 类型化数组类型 之一。

    +

    forEach()方法对类型化数组的每个元素调用提供的函数。这个方法的算法和 {{jsxref("Array.prototype.forEach()")}}相同。 TypedArray 是这里的 类型化数组类型 之一。

    语法

    @@ -35,7 +35,7 @@

    返回值

    描述

    -

    forEach方法对类型化数组中的元素按升序调用提供的 callback函数。 它不会对删除或者省略的下标调用,但是会对存在并且值为{{jsxref("undefined")}}的元素调用。

    +

    forEach方法对类型化数组中的元素按升序调用提供的 callback函数。它不会对删除或者省略的下标调用,但是会对存在并且值为{{jsxref("undefined")}}的元素调用。

    callback三个参数调用:

    @@ -47,7 +47,7 @@

    描述

    如果将thisArg参数提供给forEach,它会在调用时传递给callback,作为它的 this值。否则,会传递undefined 作为它的this 值。  callback最终观测到的this值由 用于决定函数可见的this值的一般规则来决定。

    -

    forEach处理的元素范围在callback调用之前就确定了。 在 forEach调用之后添加到数组的元素不会由 callback访问。 如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是forEach 访问它们时候的值。已删除的元素不会被访问。

    +

    forEach处理的元素范围在callback调用之前就确定了。在 forEach调用之后添加到数组的元素不会由 callback访问。如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是forEach 访问它们时候的值。已删除的元素不会被访问。

    forEach()对每个数组元素执行一次callback 函数;不像 {{jsxref("TypedArray.prototype.every()", "every()")}} 和{{jsxref("TypedArray.prototype.some()", "some()")}},它始终返回 {{jsxref("undefined")}}。

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/index.html index b51676ac5c75d1..e0f4c47942154a 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/index.html @@ -198,7 +198,7 @@

    属性

    {{jsxref("TypedArray.BYTES_PER_ELEMENT")}}
    -
    返回一个数值,代表不同类型的类型化数组对象中,单个元素的字节大小。例如 new Int8Array().BYTES_PER_ELEMENT === 1, new Int16Array().BYTES_PER_ELEMENT === 2 ( 8 位字节为 1,16 位为 2 字节,类推)。
    +
    返回一个数值,代表不同类型的类型化数组对象中,单个元素的字节大小。例如 new Int8Array().BYTES_PER_ELEMENT === 1, new Int16Array().BYTES_PER_ELEMENT === 2 (8 位字节为 1,16 位为 2 字节,类推)。
    TypedArray.length
    类型化数组中元素的个数,例如 new Int8Array(3).length === 3
    {{jsxref("TypedArray.name")}}
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/indexof/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/indexof/index.html index 28dc0524bd1f31..17ddbd40e0b56a 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/indexof/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/indexof/index.html @@ -8,7 +8,7 @@ ---
    {{JSRef}}
    -

    indexOf() 方法返回在类型数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。 方法具有与 {{jsxref("Array.prototype.indexOf()")}} 相同的算法。 TypedArray 是这里的类型化数组类型之一。

    +

    indexOf() 方法返回在类型数组中可以找到给定元素的第一个索引,如果不存在,则返回 -1。方法具有与 {{jsxref("Array.prototype.indexOf()")}} 相同的算法。TypedArray 是这里的类型化数组类型之一。

    语法

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/lastindexof/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/lastindexof/index.html index 98b0faf47b6558..0805baf1f0331d 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/lastindexof/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/lastindexof/index.html @@ -5,7 +5,7 @@ ---
    {{JSRef}}
    -

    lastIndexOf() 方法返回在类型数组中可以找到给定元素的最后一个索引,如果不存在,则返回-1。 方法具有与 {{jsxref("Array.prototype.lastIndexOf()")}} 相同的算法。 TypedArray 是这里的类型化数组类型之一。

    +

    lastIndexOf() 方法返回在类型数组中可以找到给定元素的最后一个索引,如果不存在,则返回 -1。方法具有与 {{jsxref("Array.prototype.lastIndexOf()")}} 相同的算法。TypedArray 是这里的类型化数组类型之一。

    语法

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/map/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/map/index.html index 644720ff353e66..7c5861a93fd24f 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/map/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/map/index.html @@ -5,7 +5,7 @@ ---
    {{JSRef}}
    -

    map()方法对类型化数组的每个元素调用提供的函数,并使用结果来创建新的类型化数组。 这个方法的算法和 {{jsxref("Array.prototype.map()")}}相同。 TypedArray 是这里的 类型化数组类型 之一。

    +

    map()方法对类型化数组的每个元素调用提供的函数,并使用结果来创建新的类型化数组。这个方法的算法和 {{jsxref("Array.prototype.map()")}}相同。 TypedArray 是这里的 类型化数组类型 之一。

    语法

    @@ -37,13 +37,13 @@

    描述

    map方法对类型化数组中的元素调用提供的 callback函数,按照顺序,并且会从结果构造新的类型化数组。 callback 只对拥有值的类型化数组下标调用。它不会对未定义的,被删除的或者没有赋值的下标调用。

    -

    callback 以三个参数调用: 元素的值,元素下标,和被遍历的类型化数组。

    +

    callback 以三个参数调用:元素的值,元素下标,和被遍历的类型化数组。

    如果将thisArg参数提供给map,它会在调用时传递给callback,作为它的 this值。否则,会传递undefined 作为它的this 值。  callback最终观测到的this值由 用于决定函数可见的this值的一般规则来决定。

    map 不改变在其上调用的类型化数组(虽然如果调用了callback可能会这样做)。

    -

    map处理的元素范围在callback调用之前就确定了。 在 map调用之后添加到数组的元素不会由 callback访问。 如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是map 访问它们时候的值。已删除的元素不会被访问。

    +

    map处理的元素范围在callback调用之前就确定了。在 map调用之后添加到数组的元素不会由 callback访问。如果类型化数组的现有元素被改变,或被删除,它们传给callback的值是map 访问它们时候的值。已删除的元素不会被访问。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduce/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduce/index.html index 7ce017765ffc85..6e3aa20df908a3 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduce/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduce/index.html @@ -39,7 +39,7 @@

    描述

    reduce方法对类型化数组中出现的每个元素执行callback函数,除了类型化数组的空隙。它接受四个参数:初始值(或者来自之前callback调用的值),当前元素的值,当前下标,以及被遍历的类型化数组。

    -

    第一次调用回调函数的时候, previousValuecurrentValue 可以是两个值之一。如果 initialValuereduce的调用中提供, previousValue 会等于initialValue 并且currentValue 会等于类型化数组的第一个值。 如果 initialValue 没有提供,则previousValue等于类型化数组的第一个值,currentValue会等于第二个值。

    +

    第一次调用回调函数的时候, previousValuecurrentValue 可以是两个值之一。如果 initialValuereduce的调用中提供, previousValue 会等于initialValue 并且currentValue 会等于类型化数组的第一个值。如果 initialValue 没有提供,则previousValue等于类型化数组的第一个值,currentValue会等于第二个值。

    如果类型化数组为空并且没有提供 initialValue,会抛出 {{jsxref("Global_Objects/TypeError", "TypeError")}} 。如果类型化数组中只有一个元素(无论位置)并且没有提供initialValue ,或者如果提供了initialValue 但是类型化数组为空,会返回唯一的值,但不会调用 callback

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduceright/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduceright/index.html index c1e610466cbc9c..29af3c8b78df42 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduceright/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/reduceright/index.html @@ -46,7 +46,7 @@

    描述

    });
    -

    第一次调用回调函数的时候, previousValuecurrentValue 可以是两个值之一。如果 initialValuereduce的调用中提供, previousValue 会等于initialValue 并且currentValue 会等于类型化数组的最后一个值。 如果 initialValue 没有提供,则previousValue等于类型化数组的最后一个值,currentValue会等于倒数第二个值。

    +

    第一次调用回调函数的时候, previousValuecurrentValue 可以是两个值之一。如果 initialValuereduce的调用中提供, previousValue 会等于initialValue 并且currentValue 会等于类型化数组的最后一个值。如果 initialValue 没有提供,则previousValue等于类型化数组的最后一个值,currentValue会等于倒数第二个值。

    如果类型化数组为空并且没有提供 initialValue,会抛出 {{jsxref("Global_Objects/TypeError", "TypeError")}} 。如果类型化数组中只有一个元素(无论位置)并且没有提供initialValue ,或者如果提供了initialValue 但是类型化数组为空,会返回唯一的值,但不会调用 callback

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/slice/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/slice/index.html index 0bb07e854354a9..74d39d9beece93 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/slice/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/slice/index.html @@ -60,7 +60,7 @@

    Polyfill

    这不是一个完整的 polyfill,因为它返回的是一个 Array 的实例而不是 Uint8Array,所以它没有 TypedArrays 应有的一些属性。

    -

    如果你要在不支持 Object.defineProperty 的老旧 JavaScript 引擎上支持这个特性,最好不要去实现 Array.prototype 中那些方法的 polyfill ,因为你没法让它们不可枚举。

    +

    如果你要在不支持 Object.defineProperty 的老旧 JavaScript 引擎上支持这个特性,最好不要去实现 Array.prototype 中那些方法的 polyfill,因为你没法让它们不可枚举。

    规范

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/typedarray/tolocalestring/index.html b/files/zh-cn/web/javascript/reference/global_objects/typedarray/tolocalestring/index.html index 661ff52d4e5cff..6154685838037e 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/typedarray/tolocalestring/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/typedarray/tolocalestring/index.html @@ -9,7 +9,7 @@ ---
    {{JSRef}}
    -

    toLocaleString()方法返回一个字符串,表明该类型化数组的元素。这些元素被转化为字符串并由一个区域设置指定的分隔符(例如逗号 “,”)分隔。这个方法与{{jsxref("Array.prototype.toLocaleString()")}}拥有相同的算法。同时,由于类型化数组的元素都是数,将每个元素转化为字符串的算法与{{jsxref("Number.prototype.toLocaleString()")}}是相同的。(类型化数组)的是typed array types中的其中一个。

    +

    toLocaleString()方法返回一个字符串,表明该类型化数组的元素。这些元素被转化为字符串并由一个区域设置指定的分隔符(例如逗号“,”)分隔。这个方法与{{jsxref("Array.prototype.toLocaleString()")}}拥有相同的算法。同时,由于类型化数组的元素都是数,将每个元素转化为字符串的算法与{{jsxref("Number.prototype.toLocaleString()")}}是相同的。(类型化数组)的是typed array types中的其中一个。

    语法

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/uint16array/index.html b/files/zh-cn/web/javascript/reference/global_objects/uint16array/index.html index 2e2f7134504263..ed14ba7d39b4b0 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/uint16array/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/uint16array/index.html @@ -20,7 +20,7 @@

    静态属性

    {{jsxref("TypedArray.BYTES_PER_ELEMENT", "Uint16Array.BYTES_PER_ELEMENT")}}
    返回元素大小的数值。在 Uint16Array 情况下为 2
    {{jsxref("TypedArray.name", "Uint16Array.name")}}
    -
    返回构造函数名称的字符串值。 在 Uint16Array 情况下,类型为: "Uint16Array"。
    +
    返回构造函数名称的字符串值。在 Uint16Array 情况下,类型为: "Uint16Array"。

    静态方法

    @@ -38,24 +38,24 @@

    实例属性

    {{jsxref("TypedArray.prototype.buffer", "Uint16Array.prototype.buffer")}}
    返回 Uint16Array 在构造时固定引用的 {{jsxref("ArrayBuffer")}} 。因此是 只读的
    {{jsxref("TypedArray.prototype.byteLength", "Uint16Array.prototype.byteLength")}}
    -
    返回 Uint16Array 从 {{jsxref("ArrayBuffer")}}开始的长度(以字节为单位)。在构建时固定,因此是 只读的 。
    +
    返回 Uint16Array 从 {{jsxref("ArrayBuffer")}}开始的长度(以字节为单位)。在构建时固定,因此是 只读的。
    {{jsxref("TypedArray.prototype.byteOffset", "Uint16Array.prototype.byteOffset")}}
    -
    返回 Uint16Array 从 {{jsxref("ArrayBuffer")}}开始的偏移量(以字节为单位)。在构建时固定,因此是 只读的 。
    +
    返回 Uint16Array 从 {{jsxref("ArrayBuffer")}}开始的偏移量(以字节为单位)。在构建时固定,因此是 只读的。
    {{jsxref("TypedArray.prototype.length", "Uint16Array.prototype.length")}}
    -
    返回 Uint16Array 中包含的元素数量。在构建时固定,因此是 只读的 。
    +
    返回 Uint16Array 中包含的元素数量。在构建时固定,因此是 只读的。

    实例方法

    {{jsxref("TypedArray.copyWithin", "Uint16Array.prototype.copyWithin()")}}
    -
    复制数组中的一序列数组元素。 可参阅 {{jsxref("Array.prototype.copyWithin()")}}。
    +
    复制数组中的一序列数组元素。可参阅 {{jsxref("Array.prototype.copyWithin()")}}。
    {{jsxref("TypedArray.entries", "Uint16Array.prototype.entries()")}}
    返回一个新的 Array Iterator 对象,该对象包含数组中的每个索引的键/值对。可参阅 {{jsxref("Array.prototype.entries()")}}。
    {{jsxref("TypedArray.every", "Uint16Array.prototype.every()")}}
    -
    测试数组中的所有元素是否通过函数提供的测试。 可参阅 {{jsxref("Array.prototype.every()")}}。
    +
    测试数组中的所有元素是否通过函数提供的测试。可参阅 {{jsxref("Array.prototype.every()")}}。
    {{jsxref("TypedArray.fill", "Uint16Array.prototype.fill()")}}
    -
    使用静态值填充从开始索引到结束索引的数组的所有元素。 可参阅 {{jsxref("Array.prototype.fill()")}}。
    +
    使用静态值填充从开始索引到结束索引的数组的所有元素。可参阅 {{jsxref("Array.prototype.fill()")}}。
    {{jsxref("TypedArray.filter", "Uint16Array.prototype.filter()")}}
    根据所提供的过滤函数,将所有返回 true 的所有元素创建一个新的数组。可参阅 {{jsxref("Array.prototype.filter()")}}。
    {{jsxref("TypedArray.find", "Uint16Array.prototype.find()")}}
    @@ -63,15 +63,15 @@

    实例方法

    {{jsxref("TypedArray.findIndex", "Uint16Array.prototype.findIndex()")}}
    返回数组中满足所提供的测试函数的索引,没有则返回 -1。 可参阅 {{jsxref("Array.prototype.findIndex()")}}。
    {{jsxref("TypedArray.forEach", "Uint16Array.prototype.forEach()")}}
    -
    为数组中的每个元素调用一个函数。 可参阅 {{jsxref("Array.prototype.forEach()")}}。
    +
    为数组中的每个元素调用一个函数。可参阅 {{jsxref("Array.prototype.forEach()")}}。
    {{jsxref("TypedArray.includes", "Uint16Array.prototype.includes()")}}
    判断数组中是否包含某个元素,有则返回 true ,无则返回 false 。 可参阅 {{jsxref("Array.prototype.includes()")}}。
    {{jsxref("TypedArray.indexOf", "Uint16Array.prototype.indexOf()")}}
    -
    返回数组中等于指定的值的元素第一个(最小)索引,没有则返回 -1。 可参阅 {{jsxref("Array.prototype.indexOf()")}}。
    +
    返回数组中等于指定的值的元素第一个(最小)索引,没有则返回 -1。可参阅 {{jsxref("Array.prototype.indexOf()")}}。
    {{jsxref("TypedArray.join", "Uint16Array.prototype.join()")}}
    将数组中的所有元素连接成字符串。可参阅 {{jsxref("Array.prototype.join()")}}。
    {{jsxref("TypedArray.keys", "Uint16Array.prototype.keys()")}}
    -
    f 返回一个新的 Array Iterator ,其包含数组中每个索引的键。 可参阅 {{jsxref("Array.prototype.keys()")}}。
    +
    f 返回一个新的 Array Iterator ,其包含数组中每个索引的键。可参阅 {{jsxref("Array.prototype.keys()")}}。
    {{jsxref("TypedArray.lastIndexOf", "Uint16Array.prototype.lastIndexOf()")}}
    返回数组中最后一个(最大的)与指定值相等的元素的索引,没有则返回 -1。可参阅 {{jsxref("Array.prototype.lastIndexOf()")}}。
    {{jsxref("TypedArray.map", "Uint16Array.prototype.map()")}}
    @@ -79,27 +79,27 @@

    实例方法

    {{jsxref("TypedArray.reduce", "Uint16Array.prototype.reduce()")}}
    根据所提供的函数对累加器和数组的每一个值(从左到右)进行处理,并返回最后调用函数的值。可参阅 {{jsxref("Array.prototype.reduce()")}}。
    {{jsxref("TypedArray.reduceRight", "Uint16Array.prototype.reduceRight()")}}
    -
    根据所提供的函数对累加器和数组的每一个值(从右到左)进行处理,并返回最后调用函数的值。 可参阅 {{jsxref("Array.prototype.reduceRight()")}}。
    +
    根据所提供的函数对累加器和数组的每一个值(从右到左)进行处理,并返回最后调用函数的值。可参阅 {{jsxref("Array.prototype.reduceRight()")}}。
    {{jsxref("TypedArray.reverse", "Uint16Array.prototype.reverse()")}}
    -
    颠倒数组的顺序,使第一个元素成为最后一个,最后一个元素成为第一个。 可参阅 {{jsxref("Array.prototype.reverse()")}}。
    +
    颠倒数组的顺序,使第一个元素成为最后一个,最后一个元素成为第一个。可参阅 {{jsxref("Array.prototype.reverse()")}}。
    {{jsxref("TypedArray.set", "Uint16Array.prototype.set()")}}
    在类型化数组中存储多个值,从指定数组中读取输入值。
    {{jsxref("TypedArray.slice", "Uint16Array.prototype.slice()")}}
    -
    截取数组中的一部分并作为新数组返回。 可参阅 {{jsxref("Array.prototype.slice()")}}。
    +
    截取数组中的一部分并作为新数组返回。可参阅 {{jsxref("Array.prototype.slice()")}}。
    {{jsxref("TypedArray.some", "Uint16Array.prototype.some()")}}
    -
    判读数组中是否至少有一个元素满足所提供的测试函数,有则返回 true。 可参阅 {{jsxref("Array.prototype.some()")}}。
    +
    判读数组中是否至少有一个元素满足所提供的测试函数,有则返回 true。可参阅 {{jsxref("Array.prototype.some()")}}。
    {{jsxref("TypedArray.sort", "Uint16Array.prototype.sort()")}}
    -
    对数组中的元素进行排序并返回排序后的数组。 可参阅 {{jsxref("Array.prototype.sort()")}}。
    +
    对数组中的元素进行排序并返回排序后的数组。可参阅 {{jsxref("Array.prototype.sort()")}}。
    {{jsxref("TypedArray.subarray", "Uint16Array.prototype.subarray()")}}
    从给定的开始与结束元素索引中返回一个新的 Uint16Array 。
    {{jsxref("TypedArray.values", "Uint16Array.prototype.values()")}}
    返回一个新的 Array Iterator 对象,该对象包含数组中的每个索引的值。 可参阅 {{jsxref("Array.prototype.values()")}}.
    {{jsxref("TypedArray.toLocaleString", "Uint16Array.prototype.toLocaleString()")}}
    -
    返回表示数组及其元素的本地化字符串。 可参阅 {{jsxref("Array.prototype.toLocaleString()")}}。
    +
    返回表示数组及其元素的本地化字符串。可参阅 {{jsxref("Array.prototype.toLocaleString()")}}。
    {{jsxref("TypedArray.toString", "Uint16Array.prototype.toString()")}}
    返回表示数组及其元素的字符串。可参阅 {{jsxref("Array.prototype.toString()")}}。
    {{jsxref("TypedArray.@@iterator", "Uint16Array.prototype[@@iterator]()")}}
    -
    返回一个新的 Array Iterator 对象, 其包含数组中每个索引的值。
    +
    返回一个新的 Array Iterator 对象,其包含数组中每个索引的值。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/uint32array/index.html b/files/zh-cn/web/javascript/reference/global_objects/uint32array/index.html index 11648892ea427f..88e9d063a5537c 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/uint32array/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/uint32array/index.html @@ -27,7 +27,7 @@

    属性

    Uint32Array.length
    固定值 (static) 属性,值为 3。使用 {{jsxref("TypedArray.prototype.length", "Uint32Array.prototype.length")}} 获得数组的真实长度(元素个数)。
    {{jsxref("TypedArray.name", "Uint32Array.name")}}
    -
    返回字符串类型的值,表示构造器的名字。Uint32Array 的返回值是: "Uint32Array"。
    +
    返回字符串类型的值,表示构造器的名字。Uint32Array 的返回值是:"Uint32Array"。
    {{jsxref("TypedArray.prototype", "Uint32Array.prototype")}}
    TypedArray 对象的原型链。
    @@ -49,7 +49,7 @@

    属性

    Uint32Array.prototype.constructor
    -
    返回创建实例原型的函数。 默认返回 Uint32Array 的构造器。
    +
    返回创建实例原型的函数。默认返回 Uint32Array 的构造器。
    {{jsxref("TypedArray.prototype.buffer", "Uint32Array.prototype.buffer")}} {{readonlyInline}}
    返回 Uint32Array引用的 {{jsxref("ArrayBuffer")}}。 由于构造时已固定,所以是只读的
    {{jsxref("TypedArray.prototype.byteLength", "Uint32Array.prototype.byteLength")}} {{readonlyInline}}
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/uint8array/index.html b/files/zh-cn/web/javascript/reference/global_objects/uint8array/index.html index 50c0abd5e250a2..ce840b540b99eb 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/uint8array/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/uint8array/index.html @@ -25,7 +25,7 @@

    属性

    Uint8Array.length
    静态属性 length 一直为 0。想获知其真实长度(元素个数),请参阅 {{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}}.
    {{jsxref("TypedArray.name", "Uint8Array.name")}}
    -
    返回构造名的字符串,对 Uint8Array 类型而言返回 “Uint8Array”
    +
    返回构造名的字符串,对 Uint8Array 类型而言返回“Uint8Array”
    {{jsxref("TypedArray.prototype", "Uint8Array.prototype")}}
    TypedArray 对象的原型。
    @@ -55,7 +55,7 @@

    属性

    {{jsxref("TypedArray.prototype.byteOffset", "Uint8Array.prototype.byteOffset")}} {{readonlyInline}}
    返回Uint8Array 距离其 {{jsxref("ArrayBuffer")}} 起始位置的偏移(字节数)。在构造时期固定,所以是 只读的
    {{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}} {{readonlyInline}}
    -
    返回保存在 Uint8Array中的元素数量。 在构造时期固定,所以是 只读的
    +
    返回保存在 Uint8Array中的元素数量。在构造时期固定,所以是 只读的

    方法

    @@ -92,9 +92,9 @@

    方法

    {{jsxref("TypedArray.move", "Uint8Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
    {{jsxref("TypedArray.copyWithin", "Uint8Array.prototype.copyWithin()")}}的之前的非标准版本。
    {{jsxref("TypedArray.reduce", "Uint8Array.prototype.reduce()")}}
    -
    对累加器和数组的每个值应用函数(从左到右),使其归约为单一的值, 另见 {{jsxref("Array.prototype.reduce()")}}。
    +
    对累加器和数组的每个值应用函数(从左到右),使其归约为单一的值,另见 {{jsxref("Array.prototype.reduce()")}}。
    {{jsxref("TypedArray.reduceRight", "Uint8Array.prototype.reduceRight()")}}
    -
    对累加器和数组的每个值应用函数(从右到左),使其归约为单一的值, 另见 {{jsxref("Array.prototype.reduceRight()")}}。
    +
    对累加器和数组的每个值应用函数(从右到左),使其归约为单一的值,另见 {{jsxref("Array.prototype.reduceRight()")}}。
    {{jsxref("TypedArray.reverse", "Uint8Array.prototype.reverse()")}}
    翻转数组中的元素顺序 — 第一个变为最后,最后变为第一个。另见 {{jsxref("Array.prototype.reverse()")}}。
    {{jsxref("TypedArray.set", "Uint8Array.prototype.set()")}}
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/weakset/add/index.html b/files/zh-cn/web/javascript/reference/global_objects/weakset/add/index.html index d57c1762e97a92..40cf4f5ec1a5dc 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/weakset/add/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/weakset/add/index.html @@ -20,7 +20,7 @@

    参数

    value
    -
    必须。 将对象添加进 WeakSet 集合中。
    +
    必须。将对象添加进 WeakSet 集合中。

    返回值

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/weakset/has/index.html b/files/zh-cn/web/javascript/reference/global_objects/weakset/has/index.html index 896b71ccec7f38..d38fa00193ce36 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/weakset/has/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/weakset/has/index.html @@ -15,7 +15,7 @@

    参数

    value
    -
    必须。 测试 WeakSet 中是否存在该对象。
    +
    必须。测试 WeakSet 中是否存在该对象。

    返回值

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/weakset/index.html b/files/zh-cn/web/javascript/reference/global_objects/weakset/index.html index 111b7e88cb3da8..795c8d150d65a8 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/weakset/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/weakset/index.html @@ -40,7 +40,7 @@

    使用 WeakSet对象

    ws.has(foo); // false, foo 对象已经被删除了 ws.has(bar); // true, bar 依然存在 -

    注意, foo  !==  bar。 尽管它们是相似的对象,但是它们不是同一个对象。因此,它们都可以被加入到 set 中。

    +

    注意, foo  !==  bar。尽管它们是相似的对象,但是它们不是同一个对象。因此,它们都可以被加入到 set 中。

    描述

    @@ -50,7 +50,7 @@

    描述

    • Set相比,WeakSet 只能是对象的集合,而不能是任何类型的任意值。
    • -
    • WeakSet持弱引用:集合中对象的引用为弱引用。 如果没有其他的对WeakSet中对象的引用,那么这些对象会被当成垃圾回收掉。 这也意味着 WeakSet 中没有存储当前对象的列表。 正因为这样,WeakSet 是不可枚举的。
    • +
    • WeakSet持弱引用:集合中对象的引用为弱引用。如果没有其他的对WeakSet中对象的引用,那么这些对象会被当成垃圾回收掉。这也意味着 WeakSet 中没有存储当前对象的列表。正因为这样,WeakSet 是不可枚举的。

    检测循环引用

    @@ -86,7 +86,7 @@

    检测循环引用

    foo.bar.baz = foo; // 循环引用! execRecursively(obj => console.log(obj), foo); -

    在此,在第一次运行时创建WeakSet,并将其与每个后续函数调用一起传递(使用内部参数_refs)。 对象的数量或它们的遍历顺序无关紧要,因此,WeakSet 比{{jsxref("Set")}}更适合(和执行)跟踪对象引用,尤其是在涉及大量对象时。

    +

    在此,在第一次运行时创建WeakSet,并将其与每个后续函数调用一起传递(使用内部参数_refs)。对象的数量或它们的遍历顺序无关紧要,因此,WeakSet 比{{jsxref("Set")}}更适合(和执行)跟踪对象引用,尤其是在涉及大量对象时。

    属性

    @@ -94,7 +94,7 @@

    属性

    WeakSet.length
    length 属性的值为 0.
    {{jsxref("WeakSet.prototype")}}
    -
    表示WeakSet构造函数的原型。 允许向所有WeakSet对象添加属性。
    +
    表示WeakSet构造函数的原型。允许向所有WeakSet对象添加属性。

    WeakSet 实例

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/webassembly/compileerror/index.html b/files/zh-cn/web/javascript/reference/global_objects/webassembly/compileerror/index.html index 18798cec26d271..a3728d4e32387a 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/webassembly/compileerror/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/webassembly/compileerror/index.html @@ -40,7 +40,7 @@

    属性

    {{jsxref("Error.prototype.columnNumber", "WebAssembly.CompileError.prototype.columnNumber")}}
    报出错误的代码所在文件中的列数。继承自 {{jsxref("Error")}}。
    {{jsxref("Error.prototype.stack", "WebAssembly.CompileError.prototype.stack")}}
    -
    堆栈跟踪。 继承自{{jsxref("Error")}}。
    +
    堆栈跟踪。继承自{{jsxref("Error")}}。

    方法

    @@ -49,7 +49,7 @@

    方法

    {{jsxref("Error.prototype.toSource", "WebAssembly.CompileError.prototype.toSource()")}}
    -
    返回可能导致相同错误的代码。 继承自{{jsxref("Error")}}。
    +
    返回可能导致相同错误的代码。继承自{{jsxref("Error")}}。
    {{jsxref("Error.prototype.toString", "WebAssembly.CompileError.prototype.toString()")}}
    返回表示代表指定的Error对象的字符串。从 {{jsxref("Error")}}继承。
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/webassembly/index.html b/files/zh-cn/web/javascript/reference/global_objects/webassembly/index.html index 8508a8bb9f9b00..c9ca42a87e9ba9 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/webassembly/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/webassembly/index.html @@ -35,7 +35,7 @@

    方法

    {{jsxref("WebAssembly.compileStreaming()")}}
    直接从流式底层源代码编译{{jsxref("WebAssembly.Module")}} ,将实例化作为一个单独的步骤。
    {{jsxref("WebAssembly.validate()")}}
    -
    校验 WebAssembly 二进制代码的类型数组是否合法,合法则返回 true ,否则返回 false 。
    +
    校验 WebAssembly 二进制代码的类型数组是否合法,合法则返回 true,否则返回 false。

    构造器

    @@ -61,7 +61,7 @@

    构造器

    示例

    -

    下面的示例(请参见 GitHub 上的Instantiate-streaming.html演示,并查看在线演示)直接从流式底层源传输.wasm 模块,然后对其进行编译和实例化,并通过ResultObject实现 promise。 由于instantiateStreaming()函数接受对 {{domxref("Response")}} 对象的 promise,因此您可以直接向其传递{{domxref("WindowOrWorkerGlobalScope.fetch()")}}调用,然后它将把返回的 response 传递给随后的函数。

    +

    下面的示例(请参见 GitHub 上的Instantiate-streaming.html演示,并查看在线演示)直接从流式底层源传输.wasm 模块,然后对其进行编译和实例化,并通过ResultObject实现 promise。由于instantiateStreaming()函数接受对 {{domxref("Response")}} 对象的 promise,因此您可以直接向其传递{{domxref("WindowOrWorkerGlobalScope.fetch()")}}调用,然后它将把返回的 response 传递给随后的函数。

    var importObject = { imports: { imported_func: arg => console.log(arg) } };
     
    diff --git a/files/zh-cn/web/javascript/reference/global_objects/webassembly/instance/index.html b/files/zh-cn/web/javascript/reference/global_objects/webassembly/instance/index.html
    index 340aa9e9295f63..dfe32115072124 100644
    --- a/files/zh-cn/web/javascript/reference/global_objects/webassembly/instance/index.html
    +++ b/files/zh-cn/web/javascript/reference/global_objects/webassembly/instance/index.html
    @@ -29,7 +29,7 @@ 

    参数

    module
    要被实例化的 WebAssembly.Module 对象。
    importObject {{optional_inline}}
    -
    一个包含值的对象,导入到新创建的 实例, 比如函数或 WebAssembly.Memory 对象. There must be one matching property for each declared import of module 否则抛出 WebAssembly.LinkError 异常。
    +
    一个包含值的对象,导入到新创建的 实例, 比如函数或 WebAssembly.Memory 对象。There must be one matching property for each declared import of module 否则抛出 WebAssembly.LinkError 异常。

    实例化

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/webassembly/instantiate/index.html b/files/zh-cn/web/javascript/reference/global_objects/webassembly/instantiate/index.html index 29ad963a610bde..fc736e734b2030 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/webassembly/instantiate/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/webassembly/instantiate/index.html @@ -13,7 +13,7 @@
    -

    警告:此方法不是获取 (fetch) 和实例化 wasm 模块的最具效率方法。 如果可能的话,您应该改用较新的{{jsxref("WebAssembly.instantiateStreaming()")}}方法,该方法直接从原始字节码中直接获取,编译和实例化模块,因此不需要转换为{{jsxref("ArrayBuffer")}}。

    +

    警告:此方法不是获取 (fetch) 和实例化 wasm 模块的最具效率方法。如果可能的话,您应该改用较新的{{jsxref("WebAssembly.instantiateStreaming()")}}方法,该方法直接从原始字节码中直接获取,编译和实例化模块,因此不需要转换为{{jsxref("ArrayBuffer")}}。

    语法

    @@ -45,7 +45,7 @@

    异常

    • 如果参数的类型或结构不正确,将会抛出异常 {{jsxref("TypeError")}} .
    • -
    • 如果操作失败,promise 将会被 reject 掉, 根据失败的原因不同,会抛出 3 种异常,{{jsxref("WebAssembly.CompileError")}},{{jsxref("WebAssembly.LinkError")}}, 或{{jsxref("WebAssembly.RuntimeError")}}。
    • +
    • 如果操作失败,promise 将会被 reject 掉,根据失败的原因不同,会抛出 3 种异常,{{jsxref("WebAssembly.CompileError")}},{{jsxref("WebAssembly.LinkError")}}, 或{{jsxref("WebAssembly.RuntimeError")}}。

    第二种重载 — 使用模块对象

    @@ -70,7 +70,7 @@

    异常

    • 如果参数的类型或结构不正确,将抛出异常 {{jsxref("TypeError")}} 。
    • -
    • 如果操作失败,promise 将会被 reject 掉, 根据失败的原因不同,会抛出 3 种异常,{{jsxref("WebAssembly.CompileError")}},{{jsxref("WebAssembly.LinkError")}}, 或{{jsxref("WebAssembly.RuntimeError")}}。
    • +
    • 如果操作失败,promise 将会被 reject 掉,根据失败的原因不同,会抛出 3 种异常,{{jsxref("WebAssembly.CompileError")}},{{jsxref("WebAssembly.LinkError")}}, 或{{jsxref("WebAssembly.RuntimeError")}}。

    例子

    diff --git a/files/zh-cn/web/javascript/reference/global_objects/webassembly/runtimeerror/index.html b/files/zh-cn/web/javascript/reference/global_objects/webassembly/runtimeerror/index.html index 30264d7c05b3d3..4a442954bb981a 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/webassembly/runtimeerror/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/webassembly/runtimeerror/index.html @@ -30,7 +30,7 @@

    属性

    WebAssembly.RuntimeError.prototype.constructor
    创建示例原型的特定函数。
    {{jsxref("Error.prototype.message", "WebAssembly.RuntimeError.prototype.message")}}
    -
    错误信息。 尽管 ECMA-262 指定{{jsxref("URIError")}}应提供自己的message属性,但在SpiderMonkey中,它继承了{{jsxref("Error.prototype.message")}}。
    +
    错误信息。尽管 ECMA-262 指定{{jsxref("URIError")}}应提供自己的message属性,但在SpiderMonkey中,它继承了{{jsxref("Error.prototype.message")}}。
    {{jsxref("Error.prototype.name", "WebAssembly.RuntimeError.prototype.name")}}
    错误名称。继承自 {{jsxref("Error")}}.
    {{jsxref("Error.prototype.fileName", "WebAssembly.RuntimeError.prototype.fileName")}}
    @@ -40,7 +40,7 @@

    属性

    {{jsxref("Error.prototype.columnNumber", "WebAssembly.RuntimeError.prototype.columnNumber")}}
    报出错误的代码所在文件中的列数。继承自 {{jsxref("Error")}}.
    {{jsxref("Error.prototype.stack", "WebAssembly.RuntimeError.prototype.stack")}}
    -
    堆栈跟踪。 继承自 {{jsxref("Error")}}.
    +
    堆栈跟踪。继承自 {{jsxref("Error")}}.

    方法

    @@ -49,7 +49,7 @@

    方法

    {{jsxref("Error.prototype.toSource", "WebAssembly.RuntimeError.prototype.toSource()")}}
    -
    返回可能导致相同错误的代码。 继承自{{jsxref("Error")}}.
    +
    返回可能导致相同错误的代码。继承自{{jsxref("Error")}}.
    {{jsxref("Error.prototype.toString", "WebAssembly.RuntimeError.prototype.toString()")}}
    返回表示代表指定的Error对象的字符串。从{{jsxref("Error")}}.
    diff --git a/files/zh-cn/web/javascript/reference/iteration_protocols/index.html b/files/zh-cn/web/javascript/reference/iteration_protocols/index.html index d119086ab83d57..d545dc5d75792e 100644 --- a/files/zh-cn/web/javascript/reference/iteration_protocols/index.html +++ b/files/zh-cn/web/javascript/reference/iteration_protocols/index.html @@ -20,7 +20,7 @@

    可迭代协议

    可迭代协议允许 JavaScript 对象定义或定制它们的迭代行为,例如,在一个 {{jsxref("Statements/for...of", "for..of")}} 结构中,哪些值可以被遍历到。一些内置类型同时是内置可迭代对象,并且有默认的迭代行为,比如 {{jsxref("Array")}} 或者 {{jsxref("Map")}},而其他内置类型则不是(比如 {{jsxref("Object")}}))。

    -

    要成为可迭代对象, 一个对象必须实现 @@iterator 方法。这意味着对象(或者它原型链上的某个对象)必须有一个键为 @@iterator 的属性,可通过常量 {{jsxref("Symbol.iterator")}} 访问该属性:

    +

    要成为可迭代对象,一个对象必须实现 @@iterator 方法。这意味着对象(或者它原型链上的某个对象)必须有一个键为 @@iterator 的属性,可通过常量 {{jsxref("Symbol.iterator")}} 访问该属性:

    @@ -41,9 +41,9 @@

    可迭代协议

    当一个对象需要被迭代的时候(比如被置入一个 {{jsxref("Statements/for...of", "for...of")}} 循环时),首先,会不带参数调用它的 @@iterator 方法,然后使用此方法返回的迭代器获得要迭代的值。

    -

    值得注意的是调用此零个参数函数时,它将作为对可迭代对象的方法进行调用。 因此,在函数内部,this关键字可用于访问可迭代对象的属性,以决定在迭代过程中提供什么。

    +

    值得注意的是调用此零个参数函数时,它将作为对可迭代对象的方法进行调用。因此,在函数内部,this关键字可用于访问可迭代对象的属性,以决定在迭代过程中提供什么。

    -

    此函数可以是普通函数,也可以是生成器函数,以便在调用时返回迭代器对象。 在此生成器函数的内部,可以使用yield提供每个条目。

    +

    此函数可以是普通函数,也可以是生成器函数,以便在调用时返回迭代器对象。在此生成器函数的内部,可以使用yield提供每个条目。

    迭代器协议

    @@ -222,7 +222,7 @@

    需要可迭代对象的语法

    格式不佳的可迭代对象

    -

    如果一个可迭代对象的 @@iterator 方法不能返回迭代器对象,那么可以认为它是一个格式不佳的(Non-well-formed)可迭代对象 。

    +

    如果一个可迭代对象的 @@iterator 方法不能返回迭代器对象,那么可以认为它是一个格式不佳的(Non-well-formed)可迭代对象。

    使用这样的可迭代对象很可能会导致如下的运行时(runtime)异常,或者不可预料的表现:

    diff --git a/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.html b/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.html index b699e451005759..a0bb5c253f5d1d 100644 --- a/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.html +++ b/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.html @@ -17,7 +17,7 @@

    语法

    描述

    -

    操作数被转换为 32 位整数,并由一系列位(0 和 1)表示。 超过 32 位的数字将丢弃其最高有效位。 例如,以下大于 32 位的整数将被转换为 32 位整数:

    +

    操作数被转换为 32 位整数,并由一系列位(0 和 1)表示。超过 32 位的数字将丢弃其最高有效位。例如,以下大于 32 位的整数将被转换为 32 位整数:

    Before: 11100110111110100000000000000110000000000001
     After:              10100000000000000110000000000001
    diff --git a/files/zh-cn/web/javascript/reference/operators/conditional_operator/index.html b/files/zh-cn/web/javascript/reference/operators/conditional_operator/index.html index aabf2135f85a26..ee9f3977890b7c 100644 --- a/files/zh-cn/web/javascript/reference/operators/conditional_operator/index.html +++ b/files/zh-cn/web/javascript/reference/operators/conditional_operator/index.html @@ -58,7 +58,7 @@

    描述

    条件链

    -

    这个三元操作符是右结合的,也就是说你可以像这样把它链接起来, 和 if … else if … else if … else 链类似:

    +

    这个三元操作符是右结合的,也就是说你可以像这样把它链接起来,和 if … else if … else if … else 链类似:

    function example(…) {
         return condition1 ? value1
              : condition2 ? value2
    diff --git a/files/zh-cn/web/javascript/reference/operators/delete/index.html b/files/zh-cn/web/javascript/reference/operators/delete/index.html
    index d325a09006c55f..c2fca19c99b969 100644
    --- a/files/zh-cn/web/javascript/reference/operators/delete/index.html
    +++ b/files/zh-cn/web/javascript/reference/operators/delete/index.html
    @@ -98,7 +98,7 @@ 

    不可配置属性

    // 通过以下方法获取全局属性: Object.getOwnPropertyDescriptor(window, 'nameOther'); -// 输出: Object {value: "XYZ", +// 输出:Object {value: "XYZ", // writable: true, // enumerable: true, // configurable: false} @@ -227,7 +227,7 @@

    delete 和原型链

    // 从原型上删除属性 delete Foo.prototype.bar; //true -// 由于已删除“ bar”属性,因此不能再从 Foo 继承它。 +// 由于已删除“bar”属性,因此不能再从 Foo 继承它。 console.log(foo.bar); //undefined
    diff --git a/files/zh-cn/web/javascript/reference/operators/function/index.html b/files/zh-cn/web/javascript/reference/operators/function/index.html index 79ad1af1173d71..659f933caed46b 100644 --- a/files/zh-cn/web/javascript/reference/operators/function/index.html +++ b/files/zh-cn/web/javascript/reference/operators/function/index.html @@ -27,7 +27,7 @@

    参数

    name
    -
    函数名称。可被省略,此种情况下的函数是匿名函数(anonymous)。 函数名称只是函数体中的一个本地变量。
    +
    函数名称。可被省略,此种情况下的函数是匿名函数(anonymous)。函数名称只是函数体中的一个本地变量。
    paramN
    被传递给函数的一个参数名称。一个函数至多拥有 255 个参数。
    statements
    diff --git a/files/zh-cn/web/javascript/reference/operators/increment/index.html b/files/zh-cn/web/javascript/reference/operators/increment/index.html index cb6db880e2b287..8861a917ba87a5 100644 --- a/files/zh-cn/web/javascript/reference/operators/increment/index.html +++ b/files/zh-cn/web/javascript/reference/operators/increment/index.html @@ -22,9 +22,9 @@

    语法

    描述

    -

    如使用后置(Postfix)自增,操作符在操作数后(例如  x++), 操作数会加一,然后返回加一之前的值。

    +

    如使用后置(Postfix)自增,操作符在操作数后(例如  x++),操作数会加一,然后返回加一之前的值。

    -

    如使用前置(Prefix)自增,操作符在操作数前(例如 ++x), 操作数会加一,然后返回加一之后的值。

    +

    如使用前置(Prefix)自增,操作符在操作数前(例如 ++x),操作数会加一,然后返回加一之后的值。

    示例

    diff --git a/files/zh-cn/web/javascript/reference/operators/index.html b/files/zh-cn/web/javascript/reference/operators/index.html index 5165d24bba2a75..bfe0098eee0995 100644 --- a/files/zh-cn/web/javascript/reference/operators/index.html +++ b/files/zh-cn/web/javascript/reference/operators/index.html @@ -251,7 +251,7 @@

    赋值运算符

    闭包表达式语法是一个缩写简单的函数。
    {{JSxRef("Operators/Legacy_generator_function", "Legacy generator function", "", 1)}} {{non-standard_inline}}{{obsolete_inline(58)}}
    -
    function 关键字能用来定义表达式内部未执行完的 function 的余下功能。 为了能执行 function 内部余下的代码,这个 function 的内部至少包含一个{{jsxref("Operators/yield", "yield")}} 表达式。
    +
    function 关键字能用来定义表达式内部未执行完的 function 的余下功能。为了能执行 function 内部余下的代码,这个 function 的内部至少包含一个{{jsxref("Operators/yield", "yield")}} 表达式。
    {{JSxRef("Operators/Array_comprehensions", "[for (x of y) x]")}} {{non-standard_inline}}{{obsolete_inline(58)}}
    数组解析
    {{JSxRef("Operators/Generator_comprehensions", "(for (x of y) y)")}} {{non-standard_inline}}{{obsolete_inline(58)}}
    diff --git a/files/zh-cn/web/javascript/reference/operators/inequality/index.html b/files/zh-cn/web/javascript/reference/operators/inequality/index.html index 131144457cf317..eddc72585d501d 100644 --- a/files/zh-cn/web/javascript/reference/operators/inequality/index.html +++ b/files/zh-cn/web/javascript/reference/operators/inequality/index.html @@ -10,7 +10,7 @@ ---
    {{jsSidebar("Operators")}}
    -

    不等于运算符 (!=) 检查其两个操作数是否不相等,并返回布尔结果。 与严格的不等式运算符不同,它尝试转换和比较不同类型的操作数。

    +

    不等于运算符 (!=) 检查其两个操作数是否不相等,并返回布尔结果。与严格的不等式运算符不同,它尝试转换和比较不同类型的操作数。

    {{EmbedInteractiveExample("pages/js/expressions-inequality.html")}}
    diff --git a/files/zh-cn/web/javascript/reference/operators/new/index.html b/files/zh-cn/web/javascript/reference/operators/new/index.html index bf2e40e01efdd3..4fbdfd1f593ba1 100644 --- a/files/zh-cn/web/javascript/reference/operators/new/index.html +++ b/files/zh-cn/web/javascript/reference/operators/new/index.html @@ -36,8 +36,8 @@

    描述

    1. 创建一个空的简单 JavaScript 对象(即{});
    2. -
    3. 为步骤 1 新创建的对象添加属性__proto__,将该属性链接至构造函数的原型对象 ;
    4. -
    5. 将步骤 1 新创建的对象作为this的上下文 ;
    6. +
    7. 为步骤 1 新创建的对象添加属性__proto__,将该属性链接至构造函数的原型对象;
    8. +
    9. 将步骤 1 新创建的对象作为this的上下文;
    10. 如果该函数没有返回对象,则返回this
    diff --git a/files/zh-cn/web/javascript/reference/operators/object_initializer/index.html b/files/zh-cn/web/javascript/reference/operators/object_initializer/index.html index 853d87b7c5225f..dfec8e4c39ed94 100644 --- a/files/zh-cn/web/javascript/reference/operators/object_initializer/index.html +++ b/files/zh-cn/web/javascript/reference/operators/object_initializer/index.html @@ -15,7 +15,7 @@ ---
    {{JsSidebar("Operators")}}
    -

    可以通过new Object() Object.create()方法,或者使用字面量标记(初始化标记)初始化对象。 一个对象初始化器,由花括号/大括号 ({}) 包含的一个由零个或多个对象属性名和其关联值组成的一个逗号分隔的列表构成。

    +

    可以通过new Object() Object.create()方法,或者使用字面量标记(初始化标记)初始化对象。一个对象初始化器,由花括号/大括号 ({}) 包含的一个由零个或多个对象属性名和其关联值组成的一个逗号分隔的列表构成。

    语法

    @@ -113,7 +113,7 @@

    重复属性名

    console.log(a); // { x: 2} -

    在 ECMAScript 5 严格模式的代码中, 重复的属性名会被当做{{jsxref("SyntaxError")}}。引入计算的属性名以后,属性名会在运行时出现重复。ECMAScript 2015 移除了这个限制。

    +

    在 ECMAScript 5 严格模式的代码中,重复的属性名会被当做{{jsxref("SyntaxError")}}。引入计算的属性名以后,属性名会在运行时出现重复。ECMAScript 2015 移除了这个限制。

    function haveES6DuplicatePropertySemantics(){
       "use strict";
    diff --git a/files/zh-cn/web/javascript/reference/operators/property_accessors/index.html b/files/zh-cn/web/javascript/reference/operators/property_accessors/index.html
    index 6d139479f9e850..668453a3017550 100644
    --- a/files/zh-cn/web/javascript/reference/operators/property_accessors/index.html
    +++ b/files/zh-cn/web/javascript/reference/operators/property_accessors/index.html
    @@ -102,7 +102,7 @@ 

    注意eval

    x = eval('document.forms.form_name.elements.' + strFormControl + '.value');
     
    -

    eval 的性能较差,且有安全风险。在任何时候都应该避免使用。而且,此时 strFormControl 必须是一个合法的标识符, 这在一些表单控件的 name、ID 值之中并不是必要的。所以,使用括号来代替会更好一些:

    +

    eval 的性能较差,且有安全风险。在任何时候都应该避免使用。而且,此时 strFormControl 必须是一个合法的标识符,这在一些表单控件的 name、ID 值之中并不是必要的。所以,使用括号来代替会更好一些:

    x = document.forms["form_name"].elements[strFormControl].value;
     
    diff --git a/files/zh-cn/web/javascript/reference/operators/spread_syntax/index.html b/files/zh-cn/web/javascript/reference/operators/spread_syntax/index.html index 6b1558ffa08375..d4c42fcaf2c885 100644 --- a/files/zh-cn/web/javascript/reference/operators/spread_syntax/index.html +++ b/files/zh-cn/web/javascript/reference/operators/spread_syntax/index.html @@ -142,7 +142,7 @@

    连接多个数组

    // 将 arr2 中的元素插入到 arr1 的开头 Array.prototype.unshift.apply(arr1, arr2) // arr1 现在是 [3, 4, 5, 0, 1, 2]
    -

    如果使用展开语法,代码如下:  [请注意,这里使用展开语法创建了一个新的 arr1 数组,  {{jsxref("Array.unshift")}} 方法则是修改了原本存在的 arr1 数组]:

    +

    如果使用展开语法,代码如下: [请注意,这里使用展开语法创建了一个新的 arr1 数组,  {{jsxref("Array.unshift")}} 方法则是修改了原本存在的 arr1 数组]:

    var arr1 = [0, 1, 2];
     var arr2 = [3, 4, 5];
    @@ -159,10 +159,10 @@ 

    构造字面量对象时使 var obj2 = { foo: 'baz', y: 13 }; var clonedObj = { ...obj1 }; -// 克隆后的对象: { foo: "bar", x: 42 } +// 克隆后的对象:{ foo: "bar", x: 42 } var mergedObj = { ...obj1, ...obj2 }; -// 合并后的对象: { foo: "baz", x: 42, y: 13 } +// 合并后的对象:{ foo: "baz", x: 42, y: 13 }

    提示: {{jsxref("Object.assign()")}} 函数会触发 setters,而展开语法则不会。

    @@ -199,7 +199,7 @@

    展开多个值

    剩余语法(剩余参数)

    -

    剩余语法 (Rest syntax) 看起来和展开语法完全相同,不同点在于,剩余参数用于解构数组和对象。从某种意义上说,剩余语法与展开语法是相反的:展开语法将数组展开为其中的各个元素,而剩余语法则是将多个元素收集起来并“凝聚”为单个元素。 请参考: 剩余参数

    +

    剩余语法 (Rest syntax) 看起来和展开语法完全相同,不同点在于,剩余参数用于解构数组和对象。从某种意义上说,剩余语法与展开语法是相反的:展开语法将数组展开为其中的各个元素,而剩余语法则是将多个元素收集起来并“凝聚”为单个元素。请参考: 剩余参数

    规范

    diff --git a/files/zh-cn/web/javascript/reference/operators/this/index.html b/files/zh-cn/web/javascript/reference/operators/this/index.html index 3813358f39c6b8..62893f6a67fd1e 100644 --- a/files/zh-cn/web/javascript/reference/operators/this/index.html +++ b/files/zh-cn/web/javascript/reference/operators/this/index.html @@ -366,7 +366,7 @@

    作为构造函数

    console.log(o.a); // logs 38 -

    在刚刚的例子中(C2),因为在调用构造函数的过程中,手动的设置了返回对象,与this绑定的默认对象被丢弃了。(这基本上使得语句 “this.a = 37;”成了“僵尸”代码,实际上并不是真正的“僵尸”,这条语句执行了,但是对于外部没有任何影响,因此完全可以忽略它)。

    +

    在刚刚的例子中(C2),因为在调用构造函数的过程中,手动的设置了返回对象,与this绑定的默认对象被丢弃了。(这基本上使得语句“this.a = 37;”成了“僵尸”代码,实际上并不是真正的“僵尸”,这条语句执行了,但是对于外部没有任何影响,因此完全可以忽略它)。

    作为一个 DOM 事件处理函数

    diff --git a/files/zh-cn/web/javascript/reference/operators/void/index.html b/files/zh-cn/web/javascript/reference/operators/void/index.html index ef5530b6ffa70d..127c2748eec690 100644 --- a/files/zh-cn/web/javascript/reference/operators/void/index.html +++ b/files/zh-cn/web/javascript/reference/operators/void/index.html @@ -56,7 +56,7 @@

    JavaScript URIs

    在箭头函数中避免泄漏

    -

    箭头函数标准中,允许在函数体不使用括号来直接返回值。 如果右侧调用了一个原本没有返回值的函数,其返回值改变后,则会导致非预期的副作用。 安全起见,当函数返回值是一个不会被使用到的时候,应该使用 void 运算符,来确保返回 {{jsxref("Global_Objects/undefined", "undefined")}}(如下方示例),这样,当 API 改变时,并不会影响箭头函数的行为。

    +

    箭头函数标准中,允许在函数体不使用括号来直接返回值。如果右侧调用了一个原本没有返回值的函数,其返回值改变后,则会导致非预期的副作用。安全起见,当函数返回值是一个不会被使用到的时候,应该使用 void 运算符,来确保返回 {{jsxref("Global_Objects/undefined", "undefined")}}(如下方示例),这样,当 API 改变时,并不会影响箭头函数的行为。

    button.onclick = () => void doSomething();
    diff --git a/files/zh-cn/web/javascript/reference/operators/yield/index.html b/files/zh-cn/web/javascript/reference/operators/yield/index.html index f34061ded0db5f..2e385584332405 100644 --- a/files/zh-cn/web/javascript/reference/operators/yield/index.html +++ b/files/zh-cn/web/javascript/reference/operators/yield/index.html @@ -35,7 +35,7 @@

    描述

    一旦遇到 yield 表达式,生成器的代码将被暂停运行,直到生成器的 next() 方法被调用。每次调用生成器的next()方法时,生成器都会恢复执行,直到达到以下某个值:

      -
    • yield,导致生成器再次暂停并返回生成器的新值。 下一次调用next()时,在yield之后紧接着的语句继续执行。
    • +
    • yield,导致生成器再次暂停并返回生成器的新值。下一次调用next()时,在yield之后紧接着的语句继续执行。
    • {{jsxref("Statements/throw", "throw")}}用于从生成器中抛出异常。这让生成器完全停止执行,并在调用者中继续执行,正如通常情况下抛出异常一样。
    • 到达生成器函数的结尾;在这种情况下,生成器的执行结束,并且IteratorResult给调用者返回{{jsxref("undefined")}}并且donetrue
    • 到达{{jsxref("Statements/return", "return")}} 语句。在这种情况下,生成器的执行结束,并将IteratorResult返回给调用者,其值是由return语句指定的,并且done 为true
    • diff --git a/files/zh-cn/web/javascript/reference/statements/async_function/index.html b/files/zh-cn/web/javascript/reference/statements/async_function/index.html index 0f739efeeff7ef..b0b2be6337961f 100644 --- a/files/zh-cn/web/javascript/reference/statements/async_function/index.html +++ b/files/zh-cn/web/javascript/reference/statements/async_function/index.html @@ -11,7 +11,7 @@ ---
      {{jsSidebar("Statements")}}
      -

      async 函数是使用async关键字声明的函数。 async 函数是{{jsxref("Global_Objects/AsyncFunction","AsyncFunction")}}构造函数的实例, 并且其中允许使用await关键字。asyncawait关键字让我们可以用一种更简洁的方式写出基于{{jsxref("Promise")}}的异步行为,而无需刻意地链式调用promise

      +

      async 函数是使用async关键字声明的函数。async 函数是{{jsxref("Global_Objects/AsyncFunction","AsyncFunction")}}构造函数的实例,并且其中允许使用await关键字。asyncawait关键字让我们可以用一种更简洁的方式写出基于{{jsxref("Promise")}}的异步行为,而无需刻意地链式调用promise

      async 函数还可以被{{jsxref("Operators/async_function", "作为表达式", "", 1)}}来定义。

      @@ -223,8 +223,8 @@

      async/在 Promise 例子中这种情况同样会发生,该函数必须负责返回一个捕获函数完成的Promise。在concurrentPromise函数中,这意味着它从Promise.all([]).then()返回一个 Promise。事实上,在此示例的先前版本忘记了这样做!

      但是,async 函数仍有可能然可能错误地忽略错误。
      - 以parallel async 函数为例。 如果它没有等待await(或返回)Promise.all([])调用的结果,则不会传播任何错误。
      - 虽然parallelPromise函数示例看起来很简单,但它根本不会处理错误! 这样做需要一个类似于return Promise.all([])处理方式。

      + 以parallel async 函数为例。如果它没有等待await(或返回)Promise.all([])调用的结果,则不会传播任何错误。
      + 虽然parallelPromise函数示例看起来很简单,但它根本不会处理错误!这样做需要一个类似于return Promise.all([])处理方式。

      使用 async 函数重写 promise 链

      diff --git a/files/zh-cn/web/javascript/reference/statements/block/index.html b/files/zh-cn/web/javascript/reference/statements/block/index.html index bef5ea385fb90e..0bdfc526018d05 100644 --- a/files/zh-cn/web/javascript/reference/statements/block/index.html +++ b/files/zh-cn/web/javascript/reference/statements/block/index.html @@ -40,7 +40,7 @@

      块级作用域

      在非严格模式 (non-strict mode) 下的var 或者函数声明时

      -

      通过var声明的变量或者非严格模式下 (non-strict mode) 创建的函数声明没有块级作用域。在语句块里声明的变量的作用域不仅是其所在的函数或者 script 标签内,所设置变量的影响会在超出语句块本身之外持续存在。 换句话说,这种语句块不会引入一个作用域。尽管单独的语句块是合法的语句,但在 JavaScript 中你不会想使用单独的语句块,因为它们不像你想象的 C 或 Java 中的语句块那样处理事物。例如:

      +

      通过var声明的变量或者非严格模式下 (non-strict mode) 创建的函数声明没有块级作用域。在语句块里声明的变量的作用域不仅是其所在的函数或者 script 标签内,所设置变量的影响会在超出语句块本身之外持续存在。换句话说,这种语句块不会引入一个作用域。尽管单独的语句块是合法的语句,但在 JavaScript 中你不会想使用单独的语句块,因为它们不像你想象的 C 或 Java 中的语句块那样处理事物。例如:

      var x = 1;
       {
      diff --git a/files/zh-cn/web/javascript/reference/statements/const/index.html b/files/zh-cn/web/javascript/reference/statements/const/index.html
      index c1a83426072f1f..3136b926d80c66 100644
      --- a/files/zh-cn/web/javascript/reference/statements/const/index.html
      +++ b/files/zh-cn/web/javascript/reference/statements/const/index.html
      @@ -30,7 +30,7 @@ 

      语法

      描述

      -

      此声明创建一个常量,其作用域可以是全局或本地声明的块。 与var变量不同,全局常量不会变为 window 对象的属性。需要一个常数的初始化器;也就是说,您必须在声明的同一语句中指定它的值(这是有道理的,因为以后不能更改)。

      +

      此声明创建一个常量,其作用域可以是全局或本地声明的块。与var变量不同,全局常量不会变为 window 对象的属性。需要一个常数的初始化器;也就是说,您必须在声明的同一语句中指定它的值(这是有道理的,因为以后不能更改)。

      const声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。例如,在引用内容是对象的情况下,这意味着可以改变对象的内容(例如,其参数)。

      diff --git a/files/zh-cn/web/javascript/reference/statements/continue/index.html b/files/zh-cn/web/javascript/reference/statements/continue/index.html index 290eec9c6050ed..265f727d5c144c 100644 --- a/files/zh-cn/web/javascript/reference/statements/continue/index.html +++ b/files/zh-cn/web/javascript/reference/statements/continue/index.html @@ -22,7 +22,7 @@

      语法

      描述

      -

      与 {{jsxref("Statements/break", "break")}} 语句的区别在于, continue 并不会终止循环的迭代,而是:

      +

      与 {{jsxref("Statements/break", "break")}} 语句的区别在于,continue 并不会终止循环的迭代,而是:

      • 在 {{jsxref("Statements/while", "while")}} 循环中,控制流跳转回条件判断;
      • @@ -52,7 +52,7 @@

        while 语句中使

        使用带 label 的 continue

        -

        在下面的例子中,被标记为 checkiandj 的语句包含一个被标记为 checkj 的语句。当遇到continue 语句时,程序回到 checkj 语句的开始继续执行。每次遇到 continue 时,再次执行 checkj ,直到条件判断返回 false 。之后完成 checkiandj 语句剩下的部分。

        +

        在下面的例子中,被标记为 checkiandj 的语句包含一个被标记为 checkj 的语句。当遇到continue 语句时,程序回到 checkj 语句的开始继续执行。每次遇到 continue 时,再次执行 checkj ,直到条件判断返回 false。之后完成 checkiandj 语句剩下的部分。

        但如果 continue 的标号被改为 checkiandj ,那程序将会从 checkiandj 语句的开始继续运行。

        diff --git a/files/zh-cn/web/javascript/reference/statements/debugger/index.html b/files/zh-cn/web/javascript/reference/statements/debugger/index.html index 645b193b098d1b..5448eb44acea84 100644 --- a/files/zh-cn/web/javascript/reference/statements/debugger/index.html +++ b/files/zh-cn/web/javascript/reference/statements/debugger/index.html @@ -8,7 +8,7 @@ ---

        {{jsSidebar("Statements")}}

        -

        debugger 语句调用任何可用的调试功能,例如设置断点。 如果没有调试功能可用,则此语句不起作用。

        +

        debugger 语句调用任何可用的调试功能,例如设置断点。如果没有调试功能可用,则此语句不起作用。

        语法

        diff --git a/files/zh-cn/web/javascript/reference/statements/empty/index.html b/files/zh-cn/web/javascript/reference/statements/empty/index.html index f6809c7229f6d3..c81c5418df7cb5 100644 --- a/files/zh-cn/web/javascript/reference/statements/empty/index.html +++ b/files/zh-cn/web/javascript/reference/statements/empty/index.html @@ -19,7 +19,7 @@

        语法

        描述

        -

        空语句是一个分号(;),表示不会执行任何语句,即使 JavaScript 语法需要一个语句。 相反,当你需要多行语句,但 JavaScript 只允许一个时,可以使用语句块;语句块可以将多条语句合并为一个。

        +

        空语句是一个分号(;),表示不会执行任何语句,即使 JavaScript 语法需要一个语句。相反,当你需要多行语句,但 JavaScript 只允许一个时,可以使用语句块;语句块可以将多条语句合并为一个。

        示例

        diff --git a/files/zh-cn/web/javascript/reference/statements/export/index.html b/files/zh-cn/web/javascript/reference/statements/export/index.html index f49e089a68ac48..c74086767f3a9f 100644 --- a/files/zh-cn/web/javascript/reference/statements/export/index.html +++ b/files/zh-cn/web/javascript/reference/statements/export/index.html @@ -13,7 +13,7 @@

        在创建 JavaScript 模块时,export 语句用于从模块中导出实时绑定的函数、对象或原始值,以便其他程序可以通过 {{jsxref("Statements/import", "import")}} 语句使用它们。被导出的绑定值依然可以在本地进行修改。在使用 import 进行导入时,这些绑定值只能被导入模块所读取,但在 export 导出模块中对这些绑定值进行修改,所修改的值也会实时地更新。

        -

        无论您是否声明,导出的模块都处于{{jsxref("Strict_mode","严格模式")}}。 export 语句不能用在嵌入式脚本中。

        +

        无论您是否声明,导出的模块都处于{{jsxref("Strict_mode","严格模式")}}。export 语句不能用在嵌入式脚本中。

        语法

        diff --git a/files/zh-cn/web/javascript/reference/statements/import/index.html b/files/zh-cn/web/javascript/reference/statements/import/index.html index 0bd1b75523d365..d7cb7a14dae6c5 100644 --- a/files/zh-cn/web/javascript/reference/statements/import/index.html +++ b/files/zh-cn/web/javascript/reference/statements/import/index.html @@ -93,7 +93,7 @@

        导入时重命名多个接口

        仅为副作用而导入一个模块

        -

        整个模块仅为副作用(中性词,无贬义含义)而导入,而不导入模块中的任何内容(接口)。 这将运行模块中的全局代码,但实际上不导入任何值。

        +

        整个模块仅为副作用(中性词,无贬义含义)而导入,而不导入模块中的任何内容(接口)。这将运行模块中的全局代码,但实际上不导入任何值。

        import '/modules/my-module.js';
        @@ -105,7 +105,7 @@

        导入默认值

        import myDefault from '/modules/my-module.js';
        -

        也可以同时将 default 语法与上述用法(命名空间导入或命名导入)一起使用。在这种情况下,default 导入必须首先声明。 例如:

        +

        也可以同时将 default 语法与上述用法(命名空间导入或命名导入)一起使用。在这种情况下,default 导入必须首先声明。例如:

        import myDefault, * as myModule from '/modules/my-module.js';
         // myModule used as a namespace
        diff --git a/files/zh-cn/web/javascript/reference/statements/index.html b/files/zh-cn/web/javascript/reference/statements/index.html index 6564c68f8a491d..39008c3f5b683b 100644 --- a/files/zh-cn/web/javascript/reference/statements/index.html +++ b/files/zh-cn/web/javascript/reference/statements/index.html @@ -28,7 +28,7 @@

        控制流程

        {{jsxref("Statements/Empty", "Empty")}}
        空语句用来表示没有语句的情况,尽管 JavaScript 语法期望有语句提供。
        {{jsxref("Statements/if...else", "if...else")}}
        -
        如果指定的条件是 true ,则执行相匹配的一个语句,若为 false,则执行另一个语句。
        +
        如果指定的条件是 true,则执行相匹配的一个语句,若为 false,则执行另一个语句。
        {{jsxref("Statements/switch", "switch")}}
        计算表达式,将子句于表达式的值做匹配,执行与该值相关联的语句。
        {{jsxref("Statements/throw", "throw")}}
        diff --git a/files/zh-cn/web/javascript/reference/statements/label/index.html b/files/zh-cn/web/javascript/reference/statements/label/index.html index 7fa9dba264c67f..6035ccdd343f3e 100644 --- a/files/zh-cn/web/javascript/reference/statements/label/index.html +++ b/files/zh-cn/web/javascript/reference/statements/label/index.html @@ -38,7 +38,7 @@

        描述

        需要注意的是,JavaScript 没有 goto 语句,标记只能和 break 或 continue 一起使用。

        -

        严格模式中,你不能使用 “let” 作为标签名称。它会抛出一个 {{jsxref("SyntaxError")}}(因为 let 是一个保留的标识符)。

        +

        严格模式中,你不能使用“let”作为标签名称。它会抛出一个 {{jsxref("SyntaxError")}}(因为 let 是一个保留的标识符)。

        示例

        diff --git a/files/zh-cn/web/javascript/reference/statements/let/index.md b/files/zh-cn/web/javascript/reference/statements/let/index.md index 61a79a4ef066f9..6400eba9ad5708 100644 --- a/files/zh-cn/web/javascript/reference/statements/let/index.md +++ b/files/zh-cn/web/javascript/reference/statements/let/index.md @@ -184,7 +184,7 @@ switch(x) { } ``` -使用术语 “temporal” 是因为区域取决于执行顺序(时间),而不是编写代码的顺序(位置)。例如,下面的代码会生效,是因为即使使用 `let` 变量的函数出现在变量声明之前,但函数的执行是在 TDZ 的外面。 +使用术语“temporal”是因为区域取决于执行顺序(时间),而不是编写代码的顺序(位置)。例如,下面的代码会生效,是因为即使使用 `let` 变量的函数出现在变量声明之前,但函数的执行是在 TDZ 的外面。 ```js { @@ -250,7 +250,7 @@ go({a: [1, 2, 3]}); ### 其他情况 -用在块级作用域中, **`let`** 将变量的作用域限制在块内, 而 `var` 声明的变量的作用域是在函数内。 +用在块级作用域中, **`let`** 将变量的作用域限制在块内,而 `var` 声明的变量的作用域是在函数内。 ```js var a = 1; diff --git a/files/zh-cn/web/javascript/reference/statements/switch/index.html b/files/zh-cn/web/javascript/reference/statements/switch/index.html index 763bda116b2291..6d2fa1db83c328 100644 --- a/files/zh-cn/web/javascript/reference/statements/switch/index.html +++ b/files/zh-cn/web/javascript/reference/statements/switch/index.html @@ -47,7 +47,7 @@

        语法

        描述

        -

        一个 switch 语句首先会计算其 expression 。然后,它将从第一个 case 子句开始直到寻找到一个其表达式值与所输入的 expression 的值所相等的子句(使用 严格运算符===)并将控制权转给该子句,执行相关语句。(如果多个 case 与提供的值匹配,则选择匹配的第一个 case,即使这些 case 彼此间并不相等。)

        +

        一个 switch 语句首先会计算其 expression。然后,它将从第一个 case 子句开始直到寻找到一个其表达式值与所输入的 expression 的值所相等的子句(使用 严格运算符===)并将控制权转给该子句,执行相关语句。(如果多个 case 与提供的值匹配,则选择匹配的第一个 case,即使这些 case 彼此间并不相等。)

        如果没有 case 子句相匹配,程序则会寻找那个可选的 default 子句,如果找到了,将控制权交给它,执行相关语句。若没有 default 子句,程序将继续执行直到 switch 结束。按照惯例,default 子句是最后一个子句,不过也不需要这样做。

        @@ -107,7 +107,7 @@

        如果忘记 break 会怎么样?我能把 default 放到 case 之间吗?

        -

        可以啊!JavaScript 会在它找不到匹配项时跳回到那个 default :

        +

        可以啊!JavaScript 会在它找不到匹配项时跳回到那个 default:

        var foo = 5;
         switch (foo) {
        @@ -132,7 +132,7 @@ 

        使用多准则 case 的方法

        多 case - 单一操作

        -

        这种方法利用这样一个事实:如果 case 语句之下没有 break ,它将继续执行下一个 case 语句,而不管 case 是否符合条件。 请看“如果忘记 break 会怎么样?”部分。

        +

        这种方法利用这样一个事实:如果 case 语句之下没有 break,它将继续执行下一个 case 语句,而不管 case 是否符合条件。请看“如果忘记 break 会怎么样?”部分。

        这是一个单操作顺序的 switch 语句,其中四个不同值的执行结果完全一样。

        diff --git a/files/zh-cn/web/javascript/reference/statements/try...catch/index.html b/files/zh-cn/web/javascript/reference/statements/try...catch/index.html index 54d431b2cb73bc..4d55a0707610ee 100644 --- a/files/zh-cn/web/javascript/reference/statements/try...catch/index.html +++ b/files/zh-cn/web/javascript/reference/statements/try...catch/index.html @@ -54,7 +54,7 @@

        描述

      • try...catch...finally
      • -

        catch子句包含try块中抛出异常时要执行的语句。也就是,你想让try语句中的内容成功, 如果没成功,你想控制接下来发生的事情,这时你可以在catch语句中实现。 如果在try块中有任何一个语句(或者从try块中调用的函数)抛出异常,控制立即转向catch子句。如果在try块中没有异常抛出,会跳过catch子句。

        +

        catch子句包含try块中抛出异常时要执行的语句。也就是,你想让try语句中的内容成功,如果没成功,你想控制接下来发生的事情,这时你可以在catch语句中实现。 如果在try块中有任何一个语句(或者从try块中调用的函数)抛出异常,控制立即转向catch子句。如果在try块中没有异常抛出,会跳过catch子句。

        finally子句在try块和catch块之后执行但是在下一个try声明之前执行。无论是否有异常抛出或捕获它总是执行。

        diff --git a/files/zh-cn/web/javascript/reference/strict_mode/index.html b/files/zh-cn/web/javascript/reference/strict_mode/index.html index 429f7592a898b8..cd421fe9610a09 100644 --- a/files/zh-cn/web/javascript/reference/strict_mode/index.html +++ b/files/zh-cn/web/javascript/reference/strict_mode/index.html @@ -76,7 +76,7 @@

        严格模式中的变化

        将过失错误转成异常

        -

        在严格模式下,某些先前被接受的过失错误将会被认为是异常. JavaScript 被设计为能使新人开发者更易于上手,所以有时候会给本来错误操作赋予新的不报错误的语义 (non-error semantics). 有时候这可以解决当前的问题,但有时候却会给以后留下更大的问题。严格模式则把这些失误当成错误,以便可以发现并立即将其改正。

        +

        在严格模式下,某些先前被接受的过失错误将会被认为是异常。JavaScript 被设计为能使新人开发者更易于上手,所以有时候会给本来错误操作赋予新的不报错误的语义 (non-error semantics). 有时候这可以解决当前的问题,但有时候却会给以后留下更大的问题。严格模式则把这些失误当成错误,以便可以发现并立即将其改正。

        第一,严格模式下无法再意外创建全局变量。在普通的 JavaScript 里面给一个错误命名的变量名赋值会使全局对象新增一个属性并继续“工作”(尽管将来可能会失败:在现代的 JavaScript 中有可能)。严格模式中意外创建全局变量被抛出错误替代:

        @@ -129,7 +129,7 @@

        将过失错误转成异常

        }
        -

        第六,严格模式禁止八进制数字语法. ECMAScript 并不包含八进制语法,但所有的浏览器都支持这种以零 (0) 开头的八进制语法:0644 === 420 还有 "\045" === "%".在 ECMAScript 6 中支持为一个数字加"0o"的前缀来表示八进制数。

        +

        第六,严格模式禁止八进制数字语法。ECMAScript 并不包含八进制语法,但所有的浏览器都支持这种以零 (0) 开头的八进制语法:0644 === 420 还有 "\045" === "%".在 ECMAScript 6 中支持为一个数字加"0o"的前缀来表示八进制数。

        var a = 0o10; // ES6: 八进制
        @@ -153,9 +153,9 @@

        将过失错误转成异常

        简化变量的使用

        -

        严格模式简化了代码中变量名字映射到变量定义的方式。很多编译器的优化是依赖存储变量 X 位置的能力:这对全面优化 JavaScript 代码至关重要. JavaScript 有些情况会使得代码中名字到变量定义的基本映射只在运行时才产生。严格模式移除了大多数这种情况的发生,所以编译器可以更好的优化严格模式的代码。

        +

        严格模式简化了代码中变量名字映射到变量定义的方式。很多编译器的优化是依赖存储变量 X 位置的能力:这对全面优化 JavaScript 代码至关重要。JavaScript 有些情况会使得代码中名字到变量定义的基本映射只在运行时才产生。严格模式移除了大多数这种情况的发生,所以编译器可以更好的优化严格模式的代码。

        -

        第一,严格模式禁用 withwith所引起的问题是块内的任何名称可以映射 (map) 到 with 传进来的对象的属性,也可以映射到包围这个块的作用域内的变量 (甚至是全局变量), 这一切都是在运行时决定的:在代码运行之前是无法得知的. 严格模式下,使用 with 会引起语法错误,所以就不会存在 with 块内的变量在运行时才决定引用到哪里的情况了:

        +

        第一,严格模式禁用 withwith所引起的问题是块内的任何名称可以映射 (map) 到 with 传进来的对象的属性,也可以映射到包围这个块的作用域内的变量 (甚至是全局变量), 这一切都是在运行时决定的:在代码运行之前是无法得知的。严格模式下,使用 with 会引起语法错误,所以就不会存在 with 块内的变量在运行时才决定引用到哪里的情况了:

        "use strict";
         var x = 17;
        diff --git a/files/zh-cn/web/javascript/reference/template_literals/index.html b/files/zh-cn/web/javascript/reference/template_literals/index.html
        index 16f5ffcffc9080..84cb1b37af53d7 100644
        --- a/files/zh-cn/web/javascript/reference/template_literals/index.html
        +++ b/files/zh-cn/web/javascript/reference/template_literals/index.html
        @@ -76,7 +76,7 @@ 

        插入表达式

        嵌套模板

        -

        在某些时候,嵌套模板是具有可配置字符串的最简单也是更可读的方法。 在模板中,只需在模板内的占位符 ${ } 内使用它们,就可以轻松地使用内部反引号。 例如,如果条件 a 是真的,那么返回这个模板化的文字。

        +

        在某些时候,嵌套模板是具有可配置字符串的最简单也是更可读的方法。在模板中,只需在模板内的占位符 ${ } 内使用它们,就可以轻松地使用内部反引号。例如,如果条件 a 是真的,那么返回这个模板化的文字。

        ES5:

        diff --git a/files/zh-cn/web/javascript/reference/trailing_commas/index.html b/files/zh-cn/web/javascript/reference/trailing_commas/index.html index 5392602cc877d4..b92f90e9ab079b 100644 --- a/files/zh-cn/web/javascript/reference/trailing_commas/index.html +++ b/files/zh-cn/web/javascript/reference/trailing_commas/index.html @@ -33,7 +33,7 @@

        数组

        arr; // [1, 2, 3] arr.length; // 3
        -

        如果使用了多于一个尾后逗号,会产生省略(elision,或者间隙 hole)。 带有间隙的数组叫做稀疏数组(sparse 紧凑数组 dense array 没有省略/间隙)。 例如,当使用 {{jsxref("Array.prototype.forEach()")}} 或 {{jsxref("Array.prototype.map()")}} 迭代数组时,会跳过数组间隙。

        +

        如果使用了多于一个尾后逗号,会产生省略(elision,或者间隙 hole)。带有间隙的数组叫做稀疏数组(sparse 紧凑数组 dense array 没有省略/间隙)。例如,当使用 {{jsxref("Array.prototype.forEach()")}} 或 {{jsxref("Array.prototype.map()")}} 迭代数组时,会跳过数组间隙。

        var arr = [1, 2, 3,,,];
         arr.length; // 5
        @@ -90,7 +90,7 @@ 

        函数调用

        不合法的尾后逗号

        -

        仅仅包含逗号的函数参数定义或者函数调用会抛出 {{Jsxref("SyntaxError")}}。 而且,当使用剩余参数的时候,并不支持尾后逗号:

        +

        仅仅包含逗号的函数参数定义或者函数调用会抛出 {{Jsxref("SyntaxError")}}。而且,当使用剩余参数的时候,并不支持尾后逗号:

        function f(,) {} // SyntaxError: missing formal parameter
         (,) => {};       // SyntaxError: expected expression, got ','
        diff --git a/files/zh-cn/web/manifest/index.html b/files/zh-cn/web/manifest/index.html
        index fbe70b509f1440..ea1950f218b826 100644
        --- a/files/zh-cn/web/manifest/index.html
        +++ b/files/zh-cn/web/manifest/index.html
        @@ -128,24 +128,24 @@ 

        display

    - + - +
    minimal-ui该应用程序将看起来像一个独立的应用程序,但会有浏览器地址栏。 样式因浏览器而异。该应用程序将看起来像一个独立的应用程序,但会有浏览器地址栏。样式因浏览器而异。 browser
    browser该应用程序在传统的浏览器标签或新窗口中打开,具体实现取决于浏览器和平台。 这是默认的设置。该应用程序在传统的浏览器标签或新窗口中打开,具体实现取决于浏览器和平台。这是默认的设置。 (None)
    -

    Note: 您可以使用显示模式媒体功能,根据显示模式选择性地将 CSS 应用到您的应用程序。 这可用于在从 URL 启动网站和从桌面图标启动网站之间提供一致的用户体验。

    +

    Note: 您可以使用显示模式媒体功能,根据显示模式选择性地将 CSS 应用到您的应用程序。这可用于在从 URL 启动网站和从桌面图标启动网站之间提供一致的用户体验。

    icons

    -

    指定可在各种环境中用作应用程序图标的图像对象数组。 例如,它们可以用来在其他应用程序列表中表示 Web 应用程序,或者将 Web 应用程序与OS的任务切换器和/或系统偏好集成在一起。

    +

    指定可在各种环境中用作应用程序图标的图像对象数组。例如,它们可以用来在其他应用程序列表中表示 Web 应用程序,或者将 Web 应用程序与OS的任务切换器和/或系统偏好集成在一起。

    "icons": [
       {
    @@ -183,7 +183,7 @@ 

    icons

    src - 图像文件的路径。 如果src是一个相对 URL,则基本 URL 将是 manifest 的 URL。 + 图像文件的路径。如果src是一个相对 URL,则基本 URL 将是 manifest 的 URL。 type @@ -194,7 +194,7 @@

    icons

    lang

    -

    指定nameshort_name成员中的值的主要语言。 该值是包含单个语言标记的字符串。

    +

    指定nameshort_name成员中的值的主要语言。该值是包含单个语言标记的字符串。

    "lang": "en-US"
    @@ -225,7 +225,7 @@

    orientation

    -

    指定一个布尔值,提示用户代理向用户指示指定的相关应用程序(请参见下文)可用,并建议通过 Web 应用程序。 只有当相关的本地应用程序确实提供了某些 Web 应用程序无法做到的事情时,才应该使用它。

    +

    指定一个布尔值,提示用户代理向用户指示指定的相关应用程序(请参见下文)可用,并建议通过 Web 应用程序。只有当相关的本地应用程序确实提供了某些 Web 应用程序无法做到的事情时,才应该使用它。

    "prefer_related_applications": false
    @@ -235,7 +235,7 @@ -

    指定一个“应用程序对象”数组,代表可由底层平台安装或可访问的本机应用程序 - 例如可通过 Google Play Store 获取的原生 Android 应用程序。 这样的应用程序旨在替代提供类似或等同功能的 Web 应用程序 - 就像 Web 应用程序的本机应用程序版本一样。

    +

    指定一个“应用程序对象”数组,代表可由底层平台安装或可访问的本机应用程序 - 例如可通过 Google Play Store 获取的原生 Android 应用程序。这样的应用程序旨在替代提供类似或等同功能的 Web 应用程序 - 就像 Web 应用程序的本机应用程序版本一样。

    "related_applications": [
       {
    @@ -274,7 +274,7 @@ 
     
     

    scope

    -

    定义此 Web 应用程序的应用程序上下文的导航范围。 这基本上限制了 manifest 可以查看的网页。 如果用户在范围之外浏览应用程序,则返回到正常的网页。

    +

    定义此 Web 应用程序的应用程序上下文的导航范围。这基本上限制了 manifest 可以查看的网页。如果用户在范围之外浏览应用程序,则返回到正常的网页。

    如果scope是相对 URL,则基本 URL 将是 manifest 的 URL。

    @@ -282,26 +282,26 @@

    scope

    short_name

    -

    为应用程序提供简短易读的名称。 这是为了在没有足够空间显示 Web 应用程序的全名时使用。

    +

    为应用程序提供简短易读的名称。这是为了在没有足够空间显示 Web 应用程序的全名时使用。

    "short_name": "I/O 2017"
     

    start_url

    -

    指定用户从设备启动应用程序时加载的 URL。 如果以相对 URL 的形式给出,则基本 URL 将是 manifest 的 URL。

    +

    指定用户从设备启动应用程序时加载的 URL。如果以相对 URL 的形式给出,则基本 URL 将是 manifest 的 URL。

    "start_url": "./?utm_source=web_app_manifest"

    theme_color

    -

    定义应用程序的默认主题颜色。 这有时会影响操作系统显示应用程序的方式(例如,在 Android 的任务切换器上,主题颜色包围应用程序)。

    +

    定义应用程序的默认主题颜色。这有时会影响操作系统显示应用程序的方式(例如,在 Android 的任务切换器上,主题颜色包围应用程序)。

    "theme_color": "aliceblue"

    初始屏幕

    -

    在 Chrome 47 及更高版本中,从主屏幕启动的 Web 应用程序将显示启动画面。 这个启动画面是使用 Web 应用程序清单中的属性自动生成的,具体来说就是:namebackground_color以及icons 中距设备最近 128dpi 的图标。

    +

    在 Chrome 47 及更高版本中,从主屏幕启动的 Web 应用程序将显示启动画面。这个启动画面是使用 Web 应用程序清单中的属性自动生成的,具体来说就是:namebackground_color以及icons 中距设备最近 128dpi 的图标。

    Mime 类型

    diff --git a/files/zh-cn/web/mathml/attribute/index.html b/files/zh-cn/web/mathml/attribute/index.html index 095df7836c36a1..1bf19f8dcd8c63 100644 --- a/files/zh-cn/web/mathml/attribute/index.html +++ b/files/zh-cn/web/mathml/attribute/index.html @@ -3,7 +3,7 @@ slug: Web/MathML/Attribute translation_of: Web/MathML/Attribute --- -

    此页面是 MathML 属性的字母表。 每个属性的更多详细信息请看这里element pages

    +

    此页面是 MathML 属性的字母表。每个属性的更多详细信息请看这里element pages

    注意:

    diff --git a/files/zh-cn/web/mathml/element/math/index.html b/files/zh-cn/web/mathml/element/math/index.html index 22f1d1fbbbd57b..c97e1b5418be68 100644 --- a/files/zh-cn/web/mathml/element/math/index.html +++ b/files/zh-cn/web/mathml/element/math/index.html @@ -9,7 +9,7 @@ ---
    {{MathMLRef}}
    -

    MathML 的顶级元素是<math>。所有有效的 MathML 实例必须被包括在 <math> 标记中。另外不可以在一个 <math> 元素中嵌套第二个 <math> 元素,但是 <math> 元素中可以有任意多的子元素 。

    +

    MathML 的顶级元素是<math>。所有有效的 MathML 实例必须被包括在 <math> 标记中。另外不可以在一个 <math> 元素中嵌套第二个 <math> 元素,但是 <math> 元素中可以有任意多的子元素。

    属性

    diff --git a/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.html b/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.html index 58fb1b97c6d977..9337841a94a43e 100644 --- a/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.html +++ b/files/zh-cn/web/media/dash_adaptive_streaming_for_html_5_video/index.html @@ -10,7 +10,7 @@ translation_of: Web/Media/DASH_Adaptive_Streaming_for_HTML_5_Video original_slug: Web/HTML/DASH_Adaptive_Streaming_for_HTML_5_Video --- -

    经由 HTTP 的动态自适应串流(DASH)是一种自适应串流协议。 这意味着它使得视频串流能基于网络性能来调整比特率,以保证视频流畅播放。

    +

    经由 HTTP 的动态自适应串流(DASH)是一种自适应串流协议。这意味着它使得视频串流能基于网络性能来调整比特率,以保证视频流畅播放。

    浏览器支持

    @@ -78,7 +78,7 @@

    2. 创建清单文件

    -map 参数对应输入文件的顺序(每个文件只对应一个参数)。-adaptation_sets 参数将它们分配给适配集;例如,以上命令创建一个包含 0,1,2,3 的视频集(0),而另一个(1)仅仅包含视频流 4 和音频流。

    -

    将清单和相关的视频文件放在 Web 服务器或 CDN 上。 DASH 通过 HTTP 来完成,因此只要您的 HTTP 服务器支持字节范围请求,并且 DASH 设置为使用 mimetype="application/dash+xml" 来支持 .mpd 文件即可。

    +

    将清单和相关的视频文件放在 Web 服务器或 CDN 上。DASH 通过 HTTP 来完成,因此只要您的 HTTP 服务器支持字节范围请求,并且 DASH 设置为使用 mimetype="application/dash+xml" 来支持 .mpd 文件即可。

    使用 DASH-客户端

    diff --git a/files/zh-cn/web/media/formats/index.html b/files/zh-cn/web/media/formats/index.html index f91404dc92d67b..be865dbe0a4a38 100644 --- a/files/zh-cn/web/media/formats/index.html +++ b/files/zh-cn/web/media/formats/index.html @@ -21,7 +21,7 @@ ---

    {{QuickLinksWithSubpages("/en-US/docs/Web/Media")}}

    -

    几乎从一开始,网络就包含了对某种形式的视觉媒体呈现的支持。 最初,这些功能是有限的,但是不同的浏览器厂商扩展了这些功能,并且找到了自己的解决方案来解决网络上的静态和视频图像等问题。 现代 Web 具有强大的功能来支持媒体的呈现和操作,多个与媒体相关的 API 支持各种类型的内容。 通常,浏览器支持的媒体格式完全取决于浏览器的创建者,这可能会使 Web 开发人员的工作复杂化。

    +

    几乎从一开始,网络就包含了对某种形式的视觉媒体呈现的支持。最初,这些功能是有限的,但是不同的浏览器厂商扩展了这些功能,并且找到了自己的解决方案来解决网络上的静态和视频图像等问题。现代 Web 具有强大的功能来支持媒体的呈现和操作,多个与媒体相关的 API 支持各种类型的内容。通常,浏览器支持的媒体格式完全取决于浏览器的创建者,这可能会使 Web 开发人员的工作复杂化。

    This guide provides an overview of the media file types, {{Glossary("codec", "codecs")}}, and algorithms that may comprise media used on the web. It also provides browser support information for various combinations of these, and suggestions for prioritization of formats, as well as which formats excel at specific types of content.

    diff --git a/files/zh-cn/web/performance/critical_rendering_path/index.html b/files/zh-cn/web/performance/critical_rendering_path/index.html index 751c3cf9cf3a77..8508d63abc022b 100644 --- a/files/zh-cn/web/performance/critical_rendering_path/index.html +++ b/files/zh-cn/web/performance/critical_rendering_path/index.html @@ -19,13 +19,13 @@

    理解 CRP

    Web 性能包含了服务器请求和响应、加载、执行脚本、渲染、布局和绘制每个像素到屏幕上。

    -

    网页请求从 HTML 文件请求开始。服务器返回 HTML -- 响应头和数据。然后浏览器开始解析 HTML,转换收到的数据为 DOM 树。浏览器每次发现外部资源就初始化请求,无论是样式、脚本或者嵌入的图片引用。有时请求会阻塞,这意味着解析剩下的 HTML 会被终止直到重要的资源被处理。浏览器接着解析 HTML,发请求和构造 DOM 直到文件结尾 ,这时开始构造 CSS 对象模型。等到 DOM 和 CSSOM 完成之后,浏览器构造渲染树,计算所有可见内容的样式。一旦渲染树完成布局开始,定义所有渲染树元素的位置和大小。完成之后,页面被渲染完成,或者说是绘制到屏幕上。

    +

    网页请求从 HTML 文件请求开始。服务器返回 HTML -- 响应头和数据。然后浏览器开始解析 HTML,转换收到的数据为 DOM 树。浏览器每次发现外部资源就初始化请求,无论是样式、脚本或者嵌入的图片引用。有时请求会阻塞,这意味着解析剩下的 HTML 会被终止直到重要的资源被处理。浏览器接着解析 HTML,发请求和构造 DOM 直到文件结尾,这时开始构造 CSS 对象模型。等到 DOM 和 CSSOM 完成之后,浏览器构造渲染树,计算所有可见内容的样式。一旦渲染树完成布局开始,定义所有渲染树元素的位置和大小。完成之后,页面被渲染完成,或者说是绘制到屏幕上。

    文本对象模型

    -

    DOM 构建是增量的。 HTML 响应变成令牌(token),令牌变成节点,而节点又变成 DOM 树。 单个 DOM 节点以 startTag 令牌开始,以 endTag 令牌结束。 节点包含有关 HTML 元素的所有相关信息。 该信息是使用令牌描述的。 节点根据令牌层次结构连接到 DOM 树中。 如果另一组 startTag 和 endTag 令牌位于一组 startTag 和 endTag 之间,则您在节点内有一个节点,这就是我们定义 DOM 树层次结构的方式。

    +

    DOM 构建是增量的。HTML 响应变成令牌(token),令牌变成节点,而节点又变成 DOM 树。单个 DOM 节点以 startTag 令牌开始,以 endTag 令牌结束。节点包含有关 HTML 元素的所有相关信息。该信息是使用令牌描述的。节点根据令牌层次结构连接到 DOM 树中。如果另一组 startTag 和 endTag 令牌位于一组 startTag 和 endTag 之间,则您在节点内有一个节点,这就是我们定义 DOM 树层次结构的方式。

    -

    节点数量越多,关键渲染路径中的后续事件将花费的时间就越长。 测一下吧! 几个额外的节点不会有什么区别,但“DIV 癖”(divitis)可能会导致问题。

    +

    节点数量越多,关键渲染路径中的后续事件将花费的时间就越长。测一下吧!几个额外的节点不会有什么区别,但“DIV 癖”(divitis)可能会导致问题。

    CSS 对象模型

    diff --git a/files/zh-cn/web/performance/how_browsers_work/index.md b/files/zh-cn/web/performance/how_browsers_work/index.md index 2a43ac7dc4c3c8..448209f6a6cf95 100644 --- a/files/zh-cn/web/performance/how_browsers_work/index.md +++ b/files/zh-cn/web/performance/how_browsers_work/index.md @@ -50,7 +50,7 @@ DNS 查询可能存在性能问题,特别是对于移动网络。当一个用 ### TCP 握手 -一旦获取到服务器 IP 地址,浏览器就会通过 {{glossary('TCP handshake','TCP “三次握手”')}}与服务器建立连接。这个机制的是用来让两端尝试进行通信——在浏览器和服务器通过上层协议 {{glossary('HTTPS')}} 发送数据之前,可以协商网络 TCP 套接字连接的一些参数。 +一旦获取到服务器 IP 地址,浏览器就会通过 {{glossary('TCP handshake','TCP“三次握手”')}}与服务器建立连接。这个机制的是用来让两端尝试进行通信——在浏览器和服务器通过上层协议 {{glossary('HTTPS')}} 发送数据之前,可以协商网络 TCP 套接字连接的一些参数。 TCP 的“三次握手”技术经常被称为“SYN-SYN-ACK”——更确切的说是 SYN、SYN-ACK、ACK——因为通过 TCP 首先发送了三个消息进行协商,然后在两台电脑之间开始一个 TCP 会话。是的,这意味着终端与每台服务器之间还要来回发送三条消息,而请求尚未发出。 @@ -112,13 +112,13 @@ TCP 的“三次握手”技术经常被称为“SYN-SYN-ACK”——更确切 DOM 是浏览器标记的内部表示。DOM 也是被暴露的,可以通过 JavaScript 中的各种 API 进行 DOM 操作。 -即使请求页面的 HTML 大于初始的 14KB 数据包,浏览器也将开始解析并尝试根据其拥有的数据进行渲染。这就是为什么在前 14KB 中包含浏览器开始渲染页面所需的所有内容,或者至少包含页面模板(第一次渲染所需的 CSS 和 HTML )对于 web 性能优化来说是重要的。但是在渲染到屏幕上面之前,HTML、CSS、JavaScript 必须被解析完成。 +即使请求页面的 HTML 大于初始的 14KB 数据包,浏览器也将开始解析并尝试根据其拥有的数据进行渲染。这就是为什么在前 14KB 中包含浏览器开始渲染页面所需的所有内容,或者至少包含页面模板(第一次渲染所需的 CSS 和 HTML)对于 web 性能优化来说是重要的。但是在渲染到屏幕上面之前,HTML、CSS、JavaScript 必须被解析完成。 ### 构建 DOM 树 我们描述五个步骤在[关键渲染路径](/zh-CN/docs/Web/Performance/Critical_rendering_path)这篇文章中。 -第一步是处理 HTML 标记并构造 DOM 树。HTML 解析涉及到 [tokenization](/zh-CN/docs/Web/API/DOMTokenList) 和树的构造。HTML 标记包括开始和结束标记,以及属性名和值。 如果文档格式良好,则解析它会简单而快速。解析器将标记化的输入解析到文档中,构建文档树。 +第一步是处理 HTML 标记并构造 DOM 树。HTML 解析涉及到 [tokenization](/zh-CN/docs/Web/API/DOMTokenList) 和树的构造。HTML 标记包括开始和结束标记,以及属性名和值。如果文档格式良好,则解析它会简单而快速。解析器将标记化的输入解析到文档中,构建文档树。 DOM 树描述了文档的内容。[``](/zh-CN/docs/Web/HTML/Element/html) 元素是第一个标签也是文档树的根节点。树反映了不同标记之间的关系和层次结构。嵌套在其他标记中的标记是子节点。DOM 节点的数量越多,构建 DOM 树所需的时间就越长。 diff --git a/files/zh-cn/web/performance/index.html b/files/zh-cn/web/performance/index.html index 234fd9e05e3096..ceca79d53b51c7 100644 --- a/files/zh-cn/web/performance/index.html +++ b/files/zh-cn/web/performance/index.html @@ -24,11 +24,11 @@

    关键性能指南

    初学者教程

    -

    MDN Web 性能学习专区 有着涵盖性能要素的最新教程。 如果您是性能新手,请从这里开始:

    +

    MDN Web 性能学习专区 有着涵盖性能要素的最新教程。如果您是性能新手,请从这里开始:

    Web 性能:概述
    -
    Web 性能学习路径概述。 在这里开始您的旅程。
    +
    Web 性能学习路径概述。在这里开始您的旅程。
    什么是 Web 性能?
    该文从一个模块开始,很好地讲述了性能到底是什么——包括我们在考虑性能时需要考虑的工具、指标、API、网络和人群,以及如何使性能成为 Web 开发工作流程的一部分。
    用户如何看待性能?
    @@ -36,15 +36,15 @@

    初学者教程

    Web 性能基础
    除了 HTML,CSS,JavaScript 和媒体文件这些前端模块之外,还有其他影响 Web 性能的因素,它们可能会导致应用程序变慢,或在主观和客观上使应用程序变快。有许多与 Web 性能相关的 API、开发人员工具、最佳实践和不当做法。我们将在基础层面上介绍这些影响因素,并提供进阶优化其中每一项性能的链接。
    HTML 性能特性
    -
    标签的某些属性和顺序可能会影响网站性能。 通过最大程度地减少 DOM 节点的数量,确保使用最佳顺序和属性,包括样式、脚本、媒体和第三方脚本等内容,可以大大改善用户体验。 该文详细介绍了如何使用 HTML 来确保最佳性能。
    +
    标签的某些属性和顺序可能会影响网站性能。通过最大程度地减少 DOM 节点的数量,确保使用最佳顺序和属性,包括样式、脚本、媒体和第三方脚本等内容,可以大大改善用户体验。该文详细介绍了如何使用 HTML 来确保最佳性能。
    多媒体:图像与视频
    Web 性能的最小代价通常是媒体优化。基于每个用户代理的能力、大小和像素密度来服务不同的媒体文件已成为可能。另外,如从背景图像中删除音频轨迹,可进一步提升性能。该文讨论视频、音频和图像内容对性能的影响,以及确保影响尽可能小的方法。
    CSS 性能特性
    CSS 对于提高性能来说可能是一个不太重要的优化点,但是某些 CSS 特性对性能的影响比其他特性更大。在该文中,我们将研究一些影响性能的 CSS 属性,并提供样式处理的建议方法,以确保性能不受负面影响。
    JavaScript 性能最佳实践
    -
    如果正确使用 JavaScript,则可以提供交互式和身临其境的 Web 体验——否则可能会严重损害下载时间、渲染时间、应用内性能、电池寿命和用户体验。 该文概述了一些值得思考的 JavaScript 最佳实践,以确保即使复杂的内容也尽可能地具有高性能。
    +
    如果正确使用 JavaScript,则可以提供交互式和身临其境的 Web 体验——否则可能会严重损害下载时间、渲染时间、应用内性能、电池寿命和用户体验。该文概述了一些值得思考的 JavaScript 最佳实践,以确保即使复杂的内容也尽可能地具有高性能。
    移动端性能
    -
    随着移动设备上的 Web 访问普及,并且所有移动平台都具有功能完善的 Web 浏览器,但由于受限于带宽、CPU、电池续航等因素,因此考虑这些平台上 Web 内容的性能非常重要。 本文着眼于特定于移动设备的性能注意事项。
    +
    随着移动设备上的 Web 访问普及,并且所有移动平台都具有功能完善的 Web 浏览器,但由于受限于带宽、CPU、电池续航等因素,因此考虑这些平台上 Web 内容的性能非常重要。本文着眼于特定于移动设备的性能注意事项。
    diff --git a/files/zh-cn/web/performance/lazy_loading/index.html b/files/zh-cn/web/performance/lazy_loading/index.html index 0b00648bb9216d..0d228b648ea4ae 100644 --- a/files/zh-cn/web/performance/lazy_loading/index.html +++ b/files/zh-cn/web/performance/lazy_loading/index.html @@ -9,7 +9,7 @@ - 懒加载 translation_of: Web/Performance/Lazy_loading --- -

    延迟加载 (懒加载) 是一种将资源标识为非阻塞(非关键)资源并仅在需要时加载它们的策略。 这是一种缩短关键渲染路径长度的方法,可以缩短页面加载时间。

    +

    延迟加载 (懒加载) 是一种将资源标识为非阻塞(非关键)资源并仅在需要时加载它们的策略。这是一种缩短关键渲染路径长度的方法,可以缩短页面加载时间。

    延迟加载可以在应用程序的不同时刻发生,但通常会在某些用户交互(例如滚动和导航)上发生。

    diff --git a/files/zh-cn/web/performance/optimizing_startup_performance/index.html b/files/zh-cn/web/performance/optimizing_startup_performance/index.html index d683c1072ccb51..75d4b66b4b76c6 100644 --- a/files/zh-cn/web/performance/optimizing_startup_performance/index.html +++ b/files/zh-cn/web/performance/optimizing_startup_performance/index.html @@ -34,7 +34,7 @@

    异步化

    关于如何构建你的启动过程,使得其尽可能异步执行,这里有些建议。(不过是新应用还是移植的):

      -
    • 启动时,在需要异步执行的脚本标签上使用 {{ htmlattrxref("defer") }} 或 {{ htmlattrxref("async") }} 属性 。这会允许 HTML 解析器更高效地处理文档。 Async scripts for asm.js 中有更多关于这方面的信息。
    • +
    • 启动时,在需要异步执行的脚本标签上使用 {{ htmlattrxref("defer") }} 或 {{ htmlattrxref("async") }} 属性。这会允许 HTML 解析器更高效地处理文档。 Async scripts for asm.js 中有更多关于这方面的信息。
    • 如果你需要解码资源文件(比如,解码 JPEG 文件并将其转换为原始纹理数据,以便随后在 WebGL 中使用),最好在 workers 里做这件事。
    • 当处理浏览器支持的数据格式时(例如,解析图像数据),使用设备或浏览器内置的解码器而不是运行你自己的或者使用 or using one from the original codebase。预先提供的那个基本上一定会快得多,并且能够减小你的应用的启动体积。另外,浏览器可以自动并行化这些解码器的工作。
    • 所有能并行的数据处理都应该并行化。不要一团接一团地处理数据,如果可能的话,同时处理它们! 
    • @@ -89,7 +89,7 @@

      相关链接

      原文档信息

      diff --git a/files/zh-cn/web/progressive_web_apps/add_to_home_screen/index.html b/files/zh-cn/web/progressive_web_apps/add_to_home_screen/index.html index eb9cb606533b1a..d7516c51e32bfc 100644 --- a/files/zh-cn/web/progressive_web_apps/add_to_home_screen/index.html +++ b/files/zh-cn/web/progressive_web_apps/add_to_home_screen/index.html @@ -72,8 +72,8 @@

      Manifest

      • background_color:指定在某些应用程序上下文中使用的背景色。与 A2HS 最相关的一个是在点击主屏幕上的应用程序图标并首次开始加载时显示的初始屏幕(目前仅在通过 Chrome 将应用添加到主屏幕时显示)。
      • -
      • display:指定应如何显示应用。 为了使它看起来像一个应用程序而非网页,这里应该填写像是 fullscreen (根本不显示任何 UI)或 standalone(与前者非常相似,但是状态栏这样的系统级 UI 元素可能是可见的)的值。
      • -
      • icons:指定在不同位置(例如,在任务切换器上或更重要的是在主屏幕上)表示应用程序时浏览器使用的图标。 我们的演示中仅包含一个。
      • +
      • display:指定应如何显示应用。为了使它看起来像一个应用程序而非网页,这里应该填写像是 fullscreen (根本不显示任何 UI)或 standalone(与前者非常相似,但是状态栏这样的系统级 UI 元素可能是可见的)的值。
      • +
      • icons:指定在不同位置(例如,在任务切换器上或更重要的是在主屏幕上)表示应用程序时浏览器使用的图标。我们的演示中仅包含一个。
      • name/short_name:这些字段提供了在不同位置表示应用程序时要显示的应用程序名称。name 提供完整的应用名称。short_name 则是当没有足够的空间显示全名时,提供的缩写名称。如果您的应用程序名称特别长,建议您同时提供两者。
      • start_url:提供启动添加到主屏幕应用程序时应加载的资源的路径。请注意,这必须是一个相对 manifest 指向网站主页的相对路径。另请注意,Chrome 需要这条字段才能显示安装标语,而 Firefox 即使没有这条字段也会显示用于添加到主屏的含加号的主页图标。
      diff --git a/files/zh-cn/web/progressive_web_apps/app_structure/index.html b/files/zh-cn/web/progressive_web_apps/app_structure/index.html index d05f151e414384..e4a086b46e01be 100644 --- a/files/zh-cn/web/progressive_web_apps/app_structure/index.html +++ b/files/zh-cn/web/progressive_web_apps/app_structure/index.html @@ -13,7 +13,7 @@

      应用架构

      • 服务器端渲染(SSR)的意思是在服务器上渲染网页,因此首次加载会更快,但是在不同页面之间导航都需要下载新的 HTML 内容。它的跨浏览器兼容性良好,但代价是页间加载时间延长,也就是总体感知上的性能降低:每加载一个页面,都需要一个服务器请求往返的时间。
      • -
      • 客户端渲染(CSR)允许在导航到不同页面时几乎立即在浏览器中更新网站,但在开始时需要更多的初始下载和客户端上的额外渲染。 首次访问时网站速度较慢,但后续访问速度要快得多。
      • +
      • 客户端渲染(CSR)允许在导航到不同页面时几乎立即在浏览器中更新网站,但在开始时需要更多的初始下载和客户端上的额外渲染。首次访问时网站速度较慢,但后续访问速度要快得多。

      将 SSR 与 CSR 混用可以获得最佳效果:您可以在服务器上渲染网站,缓存其内容,然后在客户端需要时更新渲染。因为使用了 SSR,第一页加载很快;因为客户端可以仅使用已更改的部分重新渲染页面,所以页面之间的导航也是平滑的。

      @@ -36,7 +36,7 @@

      我为什么要用它?

      可链接、渐进式和响应式

      -

      记住 PWA 的优点并在设计应用程序时牢记这一点非常重要。 app shell 方案允许网站:

      +

      记住 PWA 的优点并在设计应用程序时牢记这一点非常重要。app shell 方案允许网站:

      • 可链接(Linkable):即使行为类似于原生应用,它仍然是一个网站:您可以点击页面内的链接,也可以通过发送 URL 的方式分享网站给别人。
      • diff --git a/files/zh-cn/web/progressive_web_apps/installable_pwas/index.html b/files/zh-cn/web/progressive_web_apps/installable_pwas/index.html index 29ad4f61b5093c..d027215e153489 100644 --- a/files/zh-cn/web/progressive_web_apps/installable_pwas/index.html +++ b/files/zh-cn/web/progressive_web_apps/installable_pwas/index.html @@ -115,7 +115,7 @@

        总结

        在本文中,我们学习了如何使用网页清单和安装到主屏特性让 PWA 可安装。

        -

        为了获得添加到主屏的更多信息,请阅读添加到主屏指南。 浏览器支持当前限于 Android 平台上的 Firefox 58+、Mobile Chrome、 Android Webview 31+ 以及 Android Opera 32+, 但是将来这些限制的影响会逐渐减小。

        +

        为了获得添加到主屏的更多信息,请阅读添加到主屏指南。 浏览器支持当前限于 Android 平台上的 Firefox 58+、Mobile Chrome、Android Webview 31+ 以及 Android Opera 32+, 但是将来这些限制的影响会逐渐减小。

        现在让我们将目光转移到 PWA 的最后一个难点:通过推送通知再次启动(re-engagement)。

        diff --git a/files/zh-cn/web/progressive_web_apps/introduction/index.html b/files/zh-cn/web/progressive_web_apps/introduction/index.html index e4fdcb67b194ad..5f28ce360c09b0 100644 --- a/files/zh-cn/web/progressive_web_apps/introduction/index.html +++ b/files/zh-cn/web/progressive_web_apps/introduction/index.html @@ -69,17 +69,17 @@

        浏览器支持

        如前所述,PWA 不依赖于单个 API,而是使用多种技术来实现提供最佳 Web 体验的目标。

        -

        PWA 所需的关键要素是 Service Worker 支持。 值得庆幸的是,桌面和移动设备上的所有主流浏览器都支持 Service Worker。

        +

        PWA 所需的关键要素是 Service Worker 支持。值得庆幸的是,桌面和移动设备上的所有主流浏览器都支持 Service Worker。

        -

        至于其他功能,像是推送通知通知功能添加至主屏功能也得到了广泛的支持。 目前,Safari 对 Web App Manifest添加指主屏的支持有限,并且不支持 Web 推送通知。 但是,其他主流浏览器都支持这里的所有功能。

        +

        至于其他功能,像是推送通知通知功能添加至主屏功能也得到了广泛的支持。目前,Safari 对 Web App Manifest添加指主屏的支持有限,并且不支持 Web 推送通知。但是,其他主流浏览器都支持这里的所有功能。

        其中一些 API 是实验性的,文档仍在草稿中,但是 Flipkart 和 AliExpress 这样的成功案例应该也能说服您尝试在 Web 应用程序中实现一些 PWA 功能。

        -

        最重要的是,您应该遵循渐进增强理念:在客户端支持它们的情况下使用提供此类增强功能的技术,但如果客户端不支持,则仍然提供应用程序的基本功能。 这样,应用对每个人都可用,但使用现代浏览器的人能更多地从 PWA 功能中受益。

        +

        最重要的是,您应该遵循渐进增强理念:在客户端支持它们的情况下使用提供此类增强功能的技术,但如果客户端不支持,则仍然提供应用程序的基本功能。这样,应用对每个人都可用,但使用现代浏览器的人能更多地从 PWA 功能中受益。

        一个示例应用程序

        -

        在本系列文章中,我们将研究一个超级简单网站的源代码,该网站列出了  js13kGames 2017 竞赛中提交给 A-Frame category 的游戏的相关信息。 您不必考虑网站上的实际内容,这里主要是学习如何在您自己的项目中使用 PWA 功能。

        +

        在本系列文章中,我们将研究一个超级简单网站的源代码,该网站列出了  js13kGames 2017 竞赛中提交给 A-Frame category 的游戏的相关信息。您不必考虑网站上的实际内容,这里主要是学习如何在您自己的项目中使用 PWA 功能。

        您可以在 mdn.github.io/pwa-examples/js13kpwa 找到在线版本(另请参阅源代码),我们将在接下来的几篇文章中对其进行详细解释。

        diff --git a/files/zh-cn/web/progressive_web_apps/offline_service_workers/index.html b/files/zh-cn/web/progressive_web_apps/offline_service_workers/index.html index 793fb225d35cb4..7efba6baf7ebcc 100644 --- a/files/zh-cn/web/progressive_web_apps/offline_service_workers/index.html +++ b/files/zh-cn/web/progressive_web_apps/offline_service_workers/index.html @@ -5,11 +5,11 @@ ---
        {{PreviousMenuNext("Web/Apps/Progressive/App_structure", "Web/Apps/Progressive/Installable_PWAs", "Web/Apps/Progressive")}}
        -

        我们已经看到了 js13kPWA 的结构,并且看到了 shell 启动和运行的基本方式,那么现在让我们把目光转向如何使用 Service Worker 实现离线功能。 在本文,我们将看到它在 js13kPWA example 中是如何使用的(另请参阅源代码)。 我们将研究如何添加脱机功能。

        +

        我们已经看到了 js13kPWA 的结构,并且看到了 shell 启动和运行的基本方式,那么现在让我们把目光转向如何使用 Service Worker 实现离线功能。在本文,我们将看到它在 js13kPWA example 中是如何使用的(另请参阅源代码)。我们将研究如何添加脱机功能。

        Service Worker 解释

        -

        Service Worker 是浏览器和网络之间的虚拟代理。 它们终于解决了前端开发人员多年来一直在努力解决的一些问题,其中最值得关注的是,解决了如何正确缓存网站资源并使其在离线时可用的问题。

        +

        Service Worker 是浏览器和网络之间的虚拟代理。它们终于解决了前端开发人员多年来一直在努力解决的一些问题,其中最值得关注的是,解决了如何正确缓存网站资源并使其在离线时可用的问题。

        Service Worker 运行在一个与页面 JavaScript 主线程独立的线程上,并且无权访问 DOM 结构。这引入了一种与传统 Web 编程不同的方式:它的 API 是非阻塞的,并且可以在不同的上下文之间发送和接收信息。您可分配给 Service Worker 一些任务,并通过基于 Promise 的方法在任务完成时收到结果。

        diff --git a/files/zh-cn/web/security/same-origin_policy/index.html b/files/zh-cn/web/security/same-origin_policy/index.html index 9ffd83e0c1f585..87ce6ab1b7f72d 100644 --- a/files/zh-cn/web/security/same-origin_policy/index.html +++ b/files/zh-cn/web/security/same-origin_policy/index.html @@ -14,7 +14,7 @@

        同源定义

        -

        如果两个 URL 的 {{Glossary("protocol")}}、{{Glossary("port")}} (如果有指定的话) 和 {{Glossary("host")}} 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。(“元组” 是指一组项目构成的整体,双重/三重/四重/五重/等的通用形式)。

        +

        如果两个 URL 的 {{Glossary("protocol")}}、{{Glossary("port")}} (如果有指定的话) 和 {{Glossary("host")}} 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。(“元组”是指一组项目构成的整体,双重/三重/四重/五重/等的通用形式)。

        下表给出了与 URL http://store.company.com/dir/page.html 的源进行对比的示例:

        @@ -58,7 +58,7 @@

        源的继承

        在页面中通过 about:blank 或 javascript: URL 执行的脚本会继承打开该 URL 的文档的源,因为这些类型的 URLs 没有包含源服务器的相关信息。

        -

        例如,about:blank 通常作为父脚本写入内容的新的空白弹出窗口的 URL(例如,通过  Window.open()  )。 如果此弹出窗口也包含 JavaScript,则该脚本将从创建它的脚本那里继承对应的源。

        +

        例如,about:blank 通常作为父脚本写入内容的新的空白弹出窗口的 URL(例如,通过  Window.open()  )。如果此弹出窗口也包含 JavaScript,则该脚本将从创建它的脚本那里继承对应的源。

        @@ -128,7 +128,7 @@

        如何阻止跨源访问

        • 阻止跨域写操作,只要检测请求中的一个不可推测的标记 (CSRF token) 即可,这个标记被称为 Cross-Site Request Forgery (CSRF) 标记。你必须使用这个标记来阻止页面的跨站读操作。
        • 阻止资源的跨站读取,需要保证该资源是不可嵌入的。阻止嵌入行为是必须的,因为嵌入资源通常向其暴露信息。
        • -
        • 阻止跨站嵌入,需要确保你的资源不能通过以上列出的可嵌入资源格式使用。浏览器可能不会遵守 Content-Type 头部定义的类型。例如,如果您在 HTML 文档中指定 <script> 标记,则浏览器将尝试将标签内部的 HTML 解析为 JavaScript。 当您的资源不是您网站的入口点时,您还可以使用 CSRF 令牌来防止嵌入。
        • +
        • 阻止跨站嵌入,需要确保你的资源不能通过以上列出的可嵌入资源格式使用。浏览器可能不会遵守 Content-Type 头部定义的类型。例如,如果您在 HTML 文档中指定 <script> 标记,则浏览器将尝试将标签内部的 HTML 解析为 JavaScript。当您的资源不是您网站的入口点时,您还可以使用 CSRF 令牌来防止嵌入。

        跨源脚本 API 访问

        diff --git a/files/zh-cn/web/security/securing_your_site/index.html b/files/zh-cn/web/security/securing_your_site/index.html index 73c71f36c8b449..6c3e4a8bbe8a3a 100644 --- a/files/zh-cn/web/security/securing_your_site/index.html +++ b/files/zh-cn/web/security/securing_your_site/index.html @@ -30,9 +30,9 @@

        内容安全

        HTTP Strict Transport Security
        Strict-Transport-Security:  这个 HTTP 头允许站点只能使用 HTTPS。
        HTTP 访问控制
        -
        跨源资源共享标准提供了一种指定可从其他域加载的内容的方法。 您可以使用它来防止您的网站被不正当地使用; 此外,您可以使用它来建立明确允许其他站点使用的资源。
        +
        跨源资源共享标准提供了一种指定可从其他域加载的内容的方法。您可以使用它来防止您的网站被不正当地使用; 此外,您可以使用它来建立明确允许其他站点使用的资源。
        内容安全策略
        -
        一种附加的安全层,有助于检测和减轻某些类型的攻击,包括跨站脚本 (XSS) 以及数据注入攻击。 这些攻击用于从数据窃取到站点破坏或恶意软件分发的所有内容。
        +
        一种附加的安全层,有助于检测和减轻某些类型的攻击,包括跨站脚本 (XSS) 以及数据注入攻击。这些攻击用于从数据窃取到站点破坏或恶意软件分发的所有内容。
        X-Frame-Options 响应头

        X-Frame-Options:HTTP 响应头可用于指示是否应允许浏览器在{{HTMLElement("frame")}}中呈现页面。站点可以通过确保其内容未嵌入到其他站点中来避免点击劫持攻击。

        diff --git a/files/zh-cn/web/security/transport_layer_security/index.html b/files/zh-cn/web/security/transport_layer_security/index.html index 263b12d9eb67ac..682187a91ac1c8 100644 --- a/files/zh-cn/web/security/transport_layer_security/index.html +++ b/files/zh-cn/web/security/transport_layer_security/index.html @@ -8,7 +8,7 @@ translation_of: Web/Security/Transport_Layer_Security original_slug: Web/Security/传输层安全协议 --- -

        使用传输层安全性协议(TLS)进行的任何连接的安全性在很大程度上取决于密码套件和所选的安全性参数。 本文的目的是帮助您确保客户端和服务器之间的机密性和完整性通信。Mozilla 运营安全团队(OpSec)维护了 服务器端 TLS 参考配置的 Wiki 条目

        +

        使用传输层安全性协议(TLS)进行的任何连接的安全性在很大程度上取决于密码套件和所选的安全性参数。本文的目的是帮助您确保客户端和服务器之间的机密性和完整性通信。Mozilla 运营安全团队(OpSec)维护了 服务器端 TLS 参考配置的 Wiki 条目

        传输层安全性协议(Transport Layer Security protocol,TLS)是使两个联网应用程序或设备能够安全可靠地交换信息的标准。使用 TLS 的应用程序可以自行选择安全性参数,这可能会对数据的安全性和可靠性产生重大影响。本文对 TLS 进行了概述,并提供了多种在保护内容时需要做出的决策。

        diff --git a/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.html b/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.html index 649976986b4020..bbad3827916667 100644 --- a/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.html +++ b/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.html @@ -24,7 +24,7 @@

        使用内嵌 SVG

        在上面的例子中,所有段落会被ID 为my-mask 的SVG <mask>遮罩。

        -

        例子: Masking

        +

        例子:Masking

        例如,你可以在你的 HTML 文档中用 SVG 和 CSS 代码对 HTML 内容作渐变 mask 效果。

        @@ -49,7 +49,7 @@

        例子: Masking

        display: inline-block; }
    -

    注意,在 CSS 中 遮罩(mask)使用一个指向 ID 为 #mask-1的 URL,这个 ID 是在上面的 SVG 中指定的。 SVG 中其他的内容指定了渐变遮罩的细节。

    +

    注意,在 CSS 中 遮罩(mask)使用一个指向 ID 为 #mask-1的 URL,这个 ID 是在上面的 SVG 中指定的。SVG 中其他的内容指定了渐变遮罩的细节。

    将 SVG 效果应用于 (X)HTML 是通过将 target 这个 class 应用于其他元素来实现的,如下所示:

    @@ -69,7 +69,7 @@

    例子: Masking

    {{EmbedLiveSample('Example_Masking', 650, 200)}}

    -

    例子: Clipping

    +

    例子:Clipping

    此示例演示如何使用 SVG 剪辑 HTML 内容。请注意,即使链接的可点击区域也被剪切。

    @@ -115,7 +115,7 @@

    例子: Clipping

    {{EmbedLiveSample('Example_Clipping', 650, 200)}}

    -

    例子: Filtering

    +

    例子:Filtering

    这个例子演示了如何使用 SVG 对 HTML 内容进行过滤。它建立了几个过滤器,这些过滤器与 CSS 一起作用于正常和鼠标悬停状态 hover 下的三个元素。

    @@ -187,7 +187,7 @@

    例子: Filtering

    View this example live

    -

    例子: Blurred Text

    +

    例子:Blurred Text

    为了模糊文本,基于 Webkit 的浏览器有一个名为 blur 的(前缀)CSS 过滤器,(另见 CSS filter)。你可以使用 SVG 过滤器获得相同的效果。

    @@ -211,7 +211,7 @@

    例子: Blurred Text

    -

    例子: Text Effects

    +

    例子:Text Effects

    SVG 还可以用于添加比纯 HTML 文本更动态、更灵活的文本添加方法。

    diff --git a/files/zh-cn/web/svg/attribute/font-family/index.html b/files/zh-cn/web/svg/attribute/font-family/index.html index fd8d78bfaa32cb..9bcc0b34f4233f 100644 --- a/files/zh-cn/web/svg/attribute/font-family/index.html +++ b/files/zh-cn/web/svg/attribute/font-family/index.html @@ -6,7 +6,7 @@ translation_of: Web/SVG/Attribute/font-family ---

    « SVG Attribute reference home

    -

    font-family 属性 (attribute) 指出哪个字体集将被用来渲染文字, 在带优先级的字体集名称列表被指定,还有或没有泛指的字符集名称。(specified as a prioritized list of font family names and/or generic family names)。

    +

    font-family 属性 (attribute) 指出哪个字体集将被用来渲染文字,在带优先级的字体集名称列表被指定,还有或没有泛指的字符集名称。(specified as a prioritized list of font family names and/or generic family names)。

    作为一个表现层的属性,font-family属性也可以被直接用在 CSS 样式表中,详见 {{ cssxref("font-family","CSS font-family") }} 。

    使用上下文

    diff --git a/files/zh-cn/web/svg/attribute/id/index.html b/files/zh-cn/web/svg/attribute/id/index.html index 7e77dadcd1a438..4a3e8dc6d7cee5 100644 --- a/files/zh-cn/web/svg/attribute/id/index.html +++ b/files/zh-cn/web/svg/attribute/id/index.html @@ -49,7 +49,7 @@

    用法说明

    <id>
    -

    指定元素的 ID。 该 ID 在节点树中必须是唯一的,不能为空字符串,并且不能包含任何空格字符。

    +

    指定元素的 ID。该 ID 在节点树中必须是唯一的,不能为空字符串,并且不能包含任何空格字符。

    注意: 应当避免使用会被解析为 SVG 视图规范的 id 值(如MyDrawing.svg#svgView(viewBox(0,200,1000,1000))),或被解析为用作 URL 目标片段的基本媒体片段的 id 值。

    @@ -57,7 +57,7 @@

    用法说明

    -

    该属性取值必须在 XML 文档中有效。 独立的 SVG 文档使用 XML 1.0 语法,该语法指定有效的 ID 仅包含指定的字符(字母,数字和一些标点符号),开头不能是数字,点(.)字符或 连字符减号(-)。

    +

    该属性取值必须在 XML 文档中有效。独立的 SVG 文档使用 XML 1.0 语法,该语法指定有效的 ID 仅包含指定的字符(字母,数字和一些标点符号),开头不能是数字,点(.)字符或 连字符减号(-)。

    diff --git a/files/zh-cn/web/svg/attribute/index.html b/files/zh-cn/web/svg/attribute/index.html index 07888862be556a..89bf64f4b33baf 100644 --- a/files/zh-cn/web/svg/attribute/index.html +++ b/files/zh-cn/web/svg/attribute/index.html @@ -11,7 +11,7 @@ ---
    {{SVGRef}}
    -

    SVG 元素可以通过属性来修改,这些属性指定有关如何处理或呈现元素的详细信息。 下面列出了 SVG 中所有的可用属性以及参考文档的链接,以帮助您了解哪些元素支持它们,以及它们如何工作。

    +

    SVG 元素可以通过属性来修改,这些属性指定有关如何处理或呈现元素的详细信息。下面列出了 SVG 中所有的可用属性以及参考文档的链接,以帮助您了解哪些元素支持它们,以及它们如何工作。

    SVG 属性(从 A-Z 排序)

    diff --git a/files/zh-cn/web/svg/attribute/marker-end/index.html b/files/zh-cn/web/svg/attribute/marker-end/index.html index 409600aa458e20..070dfdf8651105 100644 --- a/files/zh-cn/web/svg/attribute/marker-end/index.html +++ b/files/zh-cn/web/svg/attribute/marker-end/index.html @@ -11,7 +11,7 @@

    Note: 作为一个图像属性,marker-end 可以用作 CSS 属性。

    -

    作为一个图像属性,他可以应用到所有的元素上,但是他只针对于一下其中元素有效:  {{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("line")}}, {{SVGElement("path")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, and {{SVGElement("rect")}}

    +

    作为一个图像属性,他可以应用到所有的元素上,但是他只针对于一下其中元素有效: {{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("line")}}, {{SVGElement("path")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, and {{SVGElement("rect")}}

    @@ -32,7 +32,7 @@

    animate, animateCol
    <list-of-values>
    -
    该值包含一个或多个值的分号分隔列表。 值的类型由 {{SVGAttr("href")}} 和 {{SVGAttr("attributeName")}} 属性定义。
    +
    该值包含一个或多个值的分号分隔列表。值的类型由 {{SVGAttr("href")}} 和 {{SVGAttr("attributeName")}} 属性定义。

    feColorMatrix

    diff --git a/files/zh-cn/web/svg/attribute/vector-effect/index.html b/files/zh-cn/web/svg/attribute/vector-effect/index.html index 5b2b9d5a313c3c..f8279fbac4c599 100644 --- a/files/zh-cn/web/svg/attribute/vector-effect/index.html +++ b/files/zh-cn/web/svg/attribute/vector-effect/index.html @@ -9,7 +9,7 @@

    备注: 作为显示性属性, vector-effect 也可以直接在 CSS 样式表中作为属性使用。

    -

    作为显示性属性,它能被应用到任何元素,但只对这 10 个元素有效果: {{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("foreignObject")}}, {{SVGElement("image")}}, {{SVGElement("line")}}, {{SVGElement("path")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, {{SVGElement("rect")}}, {{SVGElement("text")}}, {{SVGElement("textPath")}} {{SVGElement("tspan")}}, and {{SVGElement("use")}}

    +

    作为显示性属性,它能被应用到任何元素,但只对这 10 个元素有效果:{{SVGElement("circle")}}, {{SVGElement("ellipse")}}, {{SVGElement("foreignObject")}}, {{SVGElement("image")}}, {{SVGElement("line")}}, {{SVGElement("path")}}, {{SVGElement("polygon")}}, {{SVGElement("polyline")}}, {{SVGElement("rect")}}, {{SVGElement("text")}}, {{SVGElement("textPath")}} {{SVGElement("tspan")}}, and {{SVGElement("use")}}

    用法说明

    diff --git a/files/zh-cn/web/svg/attribute/viewbox/index.html b/files/zh-cn/web/svg/attribute/viewbox/index.html index 7205622bd6e916..498389005a9b23 100644 --- a/files/zh-cn/web/svg/attribute/viewbox/index.html +++ b/files/zh-cn/web/svg/attribute/viewbox/index.html @@ -11,7 +11,7 @@

    viewBox 属性允许指定一个给定的一组图形伸展以适应特定的容器元素。

    -

    viewBox 属性的值是一个包含 4 个参数的列表 min-x, min-y, width and height, 以空格或者逗号分隔开, 在用户空间中指定一个矩形区域映射到给定的元素,查看属性{{ SVGAttr("preserveAspectRatio") }}。

    +

    viewBox 属性的值是一个包含 4 个参数的列表 min-x, min-y, width and height,以空格或者逗号分隔开,在用户空间中指定一个矩形区域映射到给定的元素,查看属性{{ SVGAttr("preserveAspectRatio") }}。

    不允许宽度和高度为负值,0 则禁用元素的呈现。

    diff --git a/files/zh-cn/web/svg/content_type/index.html b/files/zh-cn/web/svg/content_type/index.html index e67230622c0d2b..9e666f6bf35d78 100644 --- a/files/zh-cn/web/svg/content_type/index.html +++ b/files/zh-cn/web/svg/content_type/index.html @@ -63,7 +63,7 @@

    时钟值

    DIGIT ::= [0-9] -

    对于Timecount值,默认的公制前缀是 “s”(秒)。在时钟值中不能嵌入空白,而且前导和末尾的空白字符会被忽略掉。

    +

    对于Timecount值,默认的公制前缀是“s”(秒)。在时钟值中不能嵌入空白,而且前导和末尾的空白字符会被忽略掉。

    下面是合法的时钟值的示例:

    @@ -100,9 +100,9 @@

    颜色

    一个<color> 可以是一个关键词,或者一个数字化的 RGB 规范。

    -

    除了这些颜色关键词,用户可以利用用户环境中的对象指定对应于颜色的关键词。 这些关键词的规范定义可以在用户对颜色的引用(CSS2 规范第 18.2 节)中找到。

    +

    除了这些颜色关键词,用户可以利用用户环境中的对象指定对应于颜色的关键词。这些关键词的规范定义可以在用户对颜色的引用(CSS2 规范第 18.2 节)中找到。

    -

    一个 16 进制记号法的 RGB 值的格式是一个 “#” 后面紧跟着 3 个或者 6 个 16 进制字符。三数字 RGB 记号法(#rgb)可以转换成六数字 RGB 格式(#rrggbb),只需要复制数字,而不是添加 0。举个例子,#fb0 扩展为 #ffbb00。这样确保白色(#ffffff)可以用缩写记法 #fff 指定,去掉任何对显示器的色深的依赖。一个函数记号法的 RGB 值的格式是一个 RGB 开头函数后面跟着一个逗号分隔的三数值数列(可以是三个数字或者三个百分数)后面跟着一个右括号 “)”。一个 RGB 开头函数是一个大小写不敏感的字符串 “rgb(”,举个例子,“RGB(” 或者 “rGb(”。为了兼容性,建议使用全小写形式 “rgb(”。整型值 255 对应于 100%,也对应于 16 进制计号法中的 F 或 FF:rgb(255,255,255) = rgb(100%,100%,100%) = #FFF。数字值周围允许存在空白字符。所有的 RGB 值都指定在 sRGB 颜色空间里。使用 sRGB 提供了一个清楚的、客观的、可测量的颜色定义,可以关联到国际标准。

    +

    一个 16 进制记号法的 RGB 值的格式是一个“#”后面紧跟着 3 个或者 6 个 16 进制字符。三数字 RGB 记号法(#rgb)可以转换成六数字 RGB 格式(#rrggbb),只需要复制数字,而不是添加 0。举个例子,#fb0 扩展为 #ffbb00。这样确保白色(#ffffff)可以用缩写记法 #fff 指定,去掉任何对显示器的色深的依赖。一个函数记号法的 RGB 值的格式是一个 RGB 开头函数后面跟着一个逗号分隔的三数值数列(可以是三个数字或者三个百分数)后面跟着一个右括号“)”。一个 RGB 开头函数是一个大小写不敏感的字符串“rgb(”,举个例子,“RGB(”或者“rGb(”。为了兼容性,建议使用全小写形式“rgb(”。整型值 255 对应于 100%,也对应于 16 进制计号法中的 F 或 FF:rgb(255,255,255) = rgb(100%,100%,100%) = #FFF。数字值周围允许存在空白字符。所有的 RGB 值都指定在 sRGB 颜色空间里。使用 sRGB 提供了一个清楚的、客观的、可测量的颜色定义,可以关联到国际标准。

    color    ::= "#" hexdigit hexdigit hexdigit (hexdigit hexdigit hexdigit)?
                  | "rgb("integer, integer, integer")"
    @@ -170,7 +170,7 @@ 

    整型数

    <integer>
    -

    用一个可选的正负符号(“+” 或 “-”)后面跟着一个或多个 0 到 9 的数字可以指定一个<integer>:

    +

    用一个可选的正负符号(“+”或“-”)后面跟着一个或多个 0 到 9 的数字可以指定一个<integer>:

    integer ::= [+-]? [0-9]+
    diff --git a/files/zh-cn/web/svg/element/defs/index.html b/files/zh-cn/web/svg/element/defs/index.html index 0aa997f3c7099a..3e72e0e67f07ed 100644 --- a/files/zh-cn/web/svg/element/defs/index.html +++ b/files/zh-cn/web/svg/element/defs/index.html @@ -9,7 +9,7 @@ ---
    {{SVGRef}}
    -

    SVG 允许我们定义以后需要重复使用的图形元素。 建议把所有需要再次使用的引用元素定义在defs元素里面。这样做可以增加 SVG 内容的易读性和可访问性。 在defs元素中定义的图形元素不会直接呈现。 你可以在你的视口的任意地方利用 {{ SVGElement("use") }}元素呈现这些元素。

    +

    SVG 允许我们定义以后需要重复使用的图形元素。建议把所有需要再次使用的引用元素定义在defs元素里面。这样做可以增加 SVG 内容的易读性和可访问性。在defs元素中定义的图形元素不会直接呈现。 你可以在你的视口的任意地方利用 {{ SVGElement("use") }}元素呈现这些元素。

    用法

    diff --git a/files/zh-cn/web/svg/element/set/index.html b/files/zh-cn/web/svg/element/set/index.html index 0dcf036d89202d..653b91147c2eee 100644 --- a/files/zh-cn/web/svg/element/set/index.html +++ b/files/zh-cn/web/svg/element/set/index.html @@ -11,7 +11,7 @@ ---
    {{SVGRef}}
    -

    set元素可以用来设定一个属性值,并为该值赋予一个持续时间。它支持所有的属性类型, 包括那些原理上不能插值的, 例如值为字符串和布尔类型的属性。 set 元素是非叠加的。无法在其上使用 additive 属性或 accumulate 属性,即使声明了这些属性也会自动被忽略。

    +

    set元素可以用来设定一个属性值,并为该值赋予一个持续时间。它支持所有的属性类型,包括那些原理上不能插值的,例如值为字符串和布尔类型的属性。set 元素是非叠加的。无法在其上使用 additive 属性或 accumulate 属性,即使声明了这些属性也会自动被忽略。

    用法

    diff --git a/files/zh-cn/web/svg/element/svg/index.html b/files/zh-cn/web/svg/element/svg/index.html index a6afb697b7ffa0..63cf20074c1b90 100644 --- a/files/zh-cn/web/svg/element/svg/index.html +++ b/files/zh-cn/web/svg/element/svg/index.html @@ -8,7 +8,7 @@ translation_of: Web/SVG/Element/svg ---
      -
    • 如果 svg 不是根元素,svg 元素可以用于在当前文档(比如说,一个 HTML 文档)内嵌套一个独立的 svg 片段 。 这个独立片段拥有独立的视口和坐标系统。
    • +
    • 如果 svg 不是根元素,svg 元素可以用于在当前文档(比如说,一个 HTML 文档)内嵌套一个独立的 svg 片段。 这个独立片段拥有独立的视口和坐标系统。
    diff --git a/files/zh-cn/web/svg/element/switch/index.html b/files/zh-cn/web/svg/element/switch/index.html index 790c13fd77a412..e0a16a68a4c427 100644 --- a/files/zh-cn/web/svg/element/switch/index.html +++ b/files/zh-cn/web/svg/element/switch/index.html @@ -12,7 +12,7 @@

    switch元素对它的直接子元素上的属性{{ SVGAttr("requiredFeatures") }}、属性{{ SVGAttr("requiredExtensions") }} 和 属性{{ SVGAttr("systemLanguage") }}按照顺序进行评估,然后处理和呈现第一个评估为true的子元素。 其他子元素会被绕过不会被呈现。如果某个子元素是容器元素比如说是一个{{ SVGElement("g") }}元素,那么整个子树会被处理呈现或者全部绕过不呈现。

    -

    注意:属性display和属性visibility的值对switch 元素处理是不起作用的。特别是, 在switch 元素的子元素上设置display为 none,对switch 元素的 true/false 测试处理不起作用。

    +

    注意:属性display和属性visibility的值对switch 元素处理是不起作用的。特别是,在switch 元素的子元素上设置display为 none,对switch 元素的 true/false 测试处理不起作用。

    用法

    diff --git a/files/zh-cn/web/svg/element/textpath/index.html b/files/zh-cn/web/svg/element/textpath/index.html index 8507e6a9a16549..586920760d37e0 100644 --- a/files/zh-cn/web/svg/element/textpath/index.html +++ b/files/zh-cn/web/svg/element/textpath/index.html @@ -11,7 +11,7 @@ ---
    {{SVGRef}}
    -

    除了笔直地绘制一行文字以外, SVG 也可以根据 {{ SVGElement("path") }} 元素的形状来放置文字。 只要在textPath元素内部放置文本,并通过其xlink:href属性值引用{{ SVGElement("path") }}元素,我们就可以让文字块呈现在{{ SVGElement("path") }}元素给定的路径上了。

    +

    除了笔直地绘制一行文字以外,SVG 也可以根据 {{ SVGElement("path") }} 元素的形状来放置文字。只要在textPath元素内部放置文本,并通过其xlink:href属性值引用{{ SVGElement("path") }}元素,我们就可以让文字块呈现在{{ SVGElement("path") }}元素给定的路径上了。

    用法

    diff --git a/files/zh-cn/web/svg/element/tref/index.html b/files/zh-cn/web/svg/element/tref/index.html index 0e962a35b96f53..bc1477a954f5ab 100644 --- a/files/zh-cn/web/svg/element/tref/index.html +++ b/files/zh-cn/web/svg/element/tref/index.html @@ -11,7 +11,7 @@ ---
    {{SVGRef}}
    -

     {{ SVGElement("text") }} 的文本内容既可以是直接嵌入在{{SVGElement("text")}}元素中的的字符数据 ,也可以是引用元素的字符数据内容,tref元素用来指定的包含文本内容的引用元素。

    +

     {{ SVGElement("text") }} 的文本内容既可以是直接嵌入在{{SVGElement("text")}}元素中的的字符数据,也可以是引用元素的字符数据内容,tref元素用来指定的包含文本内容的引用元素。

    用法

    diff --git a/files/zh-cn/web/svg/linking/index.html b/files/zh-cn/web/svg/linking/index.html index d8eac8aeb31c12..389878e9574a42 100644 --- a/files/zh-cn/web/svg/linking/index.html +++ b/files/zh-cn/web/svg/linking/index.html @@ -3,7 +3,7 @@ slug: Web/SVG/Linking translation_of: Web/SVG/Linking --- -
    SVG 标签内的 "a" 元素上的 “target” 属性在 Mozilla Firefox 1.5 中不起作用。使用标记将 SVG 文档嵌入父 HTML 文档时:
    +
    SVG 标签内的 "a" 元素上的“target”属性在 Mozilla Firefox 1.5 中不起作用。使用标记将 SVG 文档嵌入父 HTML 文档时:

    page1.html:

    diff --git a/files/zh-cn/web/svg/namespaces_crash_course/index.html b/files/zh-cn/web/svg/namespaces_crash_course/index.html index db67019d09fe32..b604e0daf12b52 100644 --- a/files/zh-cn/web/svg/namespaces_crash_course/index.html +++ b/files/zh-cn/web/svg/namespaces_crash_course/index.html @@ -9,9 +9,9 @@

    背景

    W3C 的长期目标是使不同类型的 XML 基本内容可以混合在同一个 XML 文件中。例如,SVG 和 MathML 可以直接并入基于 XHTML 的科学文档中。 能够混合这样的内容类型有很多优点,但也需要解决一个非常实际的问题。

    -

    合理来说,每个 XML 语言定义其规范中描述的标记标签名称的含义。 在单个 XML 文档中混合来自不同 XML 方言的内容的问题是,由一个方言定义的标签可能与另一个方言定义的标签具有相同的名称。例如,XHTML 和 SVG 都有一个<title>标签。专业使用者如何区分两者?其实当 XML 内容是它所知道的,而不仅仅是一个没有意义的包含任意标签名的 XML 文件时,专业使用者如何告诉它?

    +

    合理来说,每个 XML 语言定义其规范中描述的标记标签名称的含义。在单个 XML 文档中混合来自不同 XML 方言的内容的问题是,由一个方言定义的标签可能与另一个方言定义的标签具有相同的名称。例如,XHTML 和 SVG 都有一个<title>标签。专业使用者如何区分两者?其实当 XML 内容是它所知道的,而不仅仅是一个没有意义的包含任意标签名的 XML 文件时,专业使用者如何告诉它?

    -

    与大众想法相反,这个问题的答案不是 “可以从 DOCTYPE 声明中得知”。DTDs 的设计不考虑混合内容,而过去尝试创建混合内容的 DTDs 现在被认为是失败的。XML 和一些 XML 方言 (包括 SVG), 不要求DOCTYPE 声明,SVG 1.2 更不会有。DOCTYPE 声明(通常)与单个内容类型文件中的内容匹配的事实只是巧合的。DTDs 仅用于验证,而不是内容的识别。使用其 DOCTYPE 声明欺骗和标识 XML 内容的使用者会造成危害(User agents that cheat and identify XML content using its DOCTYPE declaration cause harm)。

    +

    与大众想法相反,这个问题的答案不是“可以从 DOCTYPE 声明中得知”。DTDs 的设计不考虑混合内容,而过去尝试创建混合内容的 DTDs 现在被认为是失败的。XML 和一些 XML 方言 (包括 SVG), 不要求DOCTYPE 声明,SVG 1.2 更不会有。DOCTYPE 声明(通常)与单个内容类型文件中的内容匹配的事实只是巧合的。DTDs 仅用于验证,而不是内容的识别。使用其 DOCTYPE 声明欺骗和标识 XML 内容的使用者会造成危害(User agents that cheat and identify XML content using its DOCTYPE declaration cause harm)。

    问题的真正答案是,XML 内容通过给明确的标签显示“命名空间声明”来告诉使用者哪个方言标签名称属于哪个。

    @@ -27,7 +27,7 @@

    声明命名空间

    命名空间声明是通过 xmlns attribute 提供的。xmlns 属性意味着这个 <svg> 标签和它的子节点都属于 'http://www.w3.org/2000/svg' 这个 SVG 命名空间。注意,这个命名空间声明只需要在根节点上声明一次。这个声明定义了默认的命名空间,所以用户代理知道所有的 <svg> 标签的子标签也属于相同的命名空间。用户代理如果能识别这个命名空间就决定他们如何处理这个标记。

    -

    请注意,命名空间仅仅只是一些字符串,所以 SVG 上那些看起来像 URI 的命名空间并不重要。因为 URIs 的唯一性从而被广泛使用,它的本意并不是要 “链接” 到某个地址。(实际上 URIs 被如此频繁地使用是 “命名空间 URI"普遍使用而不是” 命名空间的名字“被使用。)

    +

    请注意,命名空间仅仅只是一些字符串,所以 SVG 上那些看起来像 URI 的命名空间并不重要。因为 URIs 的唯一性从而被广泛使用,它的本意并不是要“链接”到某个地址。(实际上 URIs 被如此频繁地使用是“命名空间 URI"普遍使用而不是”命名空间的名字“被使用。)

    重新定义默认命名空间

    diff --git a/files/zh-cn/web/svg/tutorial/basic_shapes/index.html b/files/zh-cn/web/svg/tutorial/basic_shapes/index.html index 0fe296dc5a63a2..5e920917417e86 100644 --- a/files/zh-cn/web/svg/tutorial/basic_shapes/index.html +++ b/files/zh-cn/web/svg/tutorial/basic_shapes/index.html @@ -41,7 +41,7 @@

    基本形状

    矩形

    -

    就像你能联想到的,rect元素会在屏幕上绘制一个矩形 。其实只要 6 个基本属性就可以控制它在屏幕上的位置和形状。 上面的图例中最先展示了 2 个矩形,虽然这有点冗余了。右边的那个图形设置了 rx 和 ry 属性用来控制圆角。如果没有设置圆角,则默认为 0。

    +

    就像你能联想到的,rect元素会在屏幕上绘制一个矩形 。其实只要 6 个基本属性就可以控制它在屏幕上的位置和形状。上面的图例中最先展示了 2 个矩形,虽然这有点冗余了。右边的那个图形设置了 rx 和 ry 属性用来控制圆角。如果没有设置圆角,则默认为 0。

    <rect x="10" y="10" width="30" height="30"/>
     <rect x="60" y="10" rx="10" ry="10" width="30" height="30"/>
    diff --git a/files/zh-cn/web/svg/tutorial/getting_started/index.html b/files/zh-cn/web/svg/tutorial/getting_started/index.html index c1cbd48cb0890c..47c823b75bdddf 100644 --- a/files/zh-cn/web/svg/tutorial/getting_started/index.html +++ b/files/zh-cn/web/svg/tutorial/getting_started/index.html @@ -27,7 +27,7 @@

    一个简单的示例

    </svg>
    -

    复制并粘贴代码到文件 demo1.svg。然后用 Firefox 打开该文件。 它将会呈现为下面的截图。(Firefox 用户点击这里)

    +

    复制并粘贴代码到文件 demo1.svg。然后用 Firefox 打开该文件。它将会呈现为下面的截图。(Firefox 用户点击这里)

    svgdemo1.png

    @@ -44,13 +44,13 @@

    一个简单的示例

  • 绘制一个完全覆盖图像区域的矩形 <rect/>把背景颜色设为红色。
  • 一个半径 80px 的绿色圆圈<circle/>绘制在红色矩形的正中央(向右偏移 150px,向下偏移 100px)。
  • -
  • 绘制文字“SVG”。文字被填充为白色, 通过设置居中的锚点把文字定位到期望的位置:在这种情况下,中心点应该对应于绿色圆圈的中点。还可以精细调整字体大小和垂直位置,确保最后的样式是美观的。
  • +
  • 绘制文字“SVG”。文字被填充为白色,通过设置居中的锚点把文字定位到期望的位置:在这种情况下,中心点应该对应于绿色圆圈的中点。还可以精细调整字体大小和垂直位置,确保最后的样式是美观的。
  • SVG 文件的基本属性

      -
    • 最值得注意的一点是元素的渲染顺序。SVG 文件全局有效的规则是 “后来居上”,越后面的元素越可见。
    • +
    • 最值得注意的一点是元素的渲染顺序。SVG 文件全局有效的规则是“后来居上”,越后面的元素越可见。
    • web 上的 svg 文件可以直接在浏览器上展示,或者通过以下几种方法嵌入到 HTML 文件中:
      • 如果 HTML 是 XHTML 并且声明类型为application/xhtml+xml,可以直接把 SVG 嵌入到 XML 源码中。
      • @@ -62,7 +62,7 @@

        SVG 文件的基本属性

                <iframe src="image.svg"></iframe>
      • 理论上同样可以使用 img 元素,但是在低于 4.0 版本的 Firefox 中不起作用。
      • -
      • 最后 SVG 可以通过 JavaScript 动态创建并注入到 HTML DOM 中。 这样具有一个优点,可以对浏览器使用替代技术,在不能解析 SVG 的情况下,可以替换创建的内容。
      • +
      • 最后 SVG 可以通过 JavaScript 动态创建并注入到 HTML DOM 中。这样具有一个优点,可以对浏览器使用替代技术,在不能解析 SVG 的情况下,可以替换创建的内容。
      阅读this dedicated article 以深入了解该话题。
    • SVG 如何处理大小和单位将在下一页详解。
    • @@ -70,9 +70,9 @@

      SVG 文件的基本属性

      SVG 文件类型

      -

      SVG 文件有两种形式。普通 SVG 文件是包含 SVG 标记的简单文本文件。推荐使用 “.svg”(全部小写)作为此类文件的扩展名。

      +

      SVG 文件有两种形式。普通 SVG 文件是包含 SVG 标记的简单文本文件。推荐使用“.svg”(全部小写)作为此类文件的扩展名。

      -

      由于在某些应用(比如地图应用等)中使用时,SVG 文件可能会很大,SVG 标准同样允许 gzip 压缩的 SVG 文件。推荐使用 “.svgz”(全部小写)作为此类文件扩展名 。不幸的是,如果服务器是微软的 IIS 服务器,使 gzip 压缩的 SVG 文件在所有的可用 SVG 的用户代理上可靠地起作用是相当困难的,而且 Firefox 不能在本地机器上加载 gzip 压缩的 SVG 文件。 除非知道处理发布内容的 Web 服务器可以正确的处理 gzip,否则要避免使用 gzip 压缩的 SVG。

      +

      由于在某些应用(比如地图应用等)中使用时,SVG 文件可能会很大,SVG 标准同样允许 gzip 压缩的 SVG 文件。推荐使用“.svgz”(全部小写)作为此类文件扩展名。不幸的是,如果服务器是微软的 IIS 服务器,使 gzip 压缩的 SVG 文件在所有的可用 SVG 的用户代理上可靠地起作用是相当困难的,而且 Firefox 不能在本地机器上加载 gzip 压缩的 SVG 文件。 除非知道处理发布内容的 Web 服务器可以正确的处理 gzip,否则要避免使用 gzip 压缩的 SVG。

      关于 Web 服务器的小提示

      @@ -87,7 +87,7 @@

      关于 Web 服务器 Content-Encoding: gzip Vary: Accept-Encoding -

      可以利用Network Monitor panel或者web-sniffer.net之类的网站来检查服务器是否给 SVG 文件发送正确的 HTTP 头,向web-sniffer.net提交你的一个 SVG 文件的链接,然后查看 HTTP 响应头。如果发现服务器没有发送上述的响应头部值,那么你应该联系你的服务器供应商。如果不能说服他们为 SVG 修正服务器配置,可能还有一些我们可以自行解决的办法。 请阅读 SVG 维基的server configuration page以找到一些简单的解决方案。

      +

      可以利用Network Monitor panel或者web-sniffer.net之类的网站来检查服务器是否给 SVG 文件发送正确的 HTTP 头,向web-sniffer.net提交你的一个 SVG 文件的链接,然后查看 HTTP 响应头。如果发现服务器没有发送上述的响应头部值,那么你应该联系你的服务器供应商。如果不能说服他们为 SVG 修正服务器配置,可能还有一些我们可以自行解决的办法。请阅读 SVG 维基的server configuration page以找到一些简单的解决方案。

      服务器配置错误是 SVG 加载失败的常见原因,所以一定要确保你的服务器配置正确。如果不能把服务器配置成给 SVG 文件发送正确的响应头,这时 Firefox 很有可能把该文件的标记显示成文本或乱码,甚至会要求查看者选择打开文件的应用程序。

      diff --git a/files/zh-cn/web/svg/tutorial/paths/index.html b/files/zh-cn/web/svg/tutorial/paths/index.html index 9c3fa36bf4912e..6aa7f2072fe056 100644 --- a/files/zh-cn/web/svg/tutorial/paths/index.html +++ b/files/zh-cn/web/svg/tutorial/paths/index.html @@ -9,7 +9,7 @@

      另外,path 只需要设定很少的点,就可以创建平滑流畅的线条(比如曲线)。虽然polyline元素也能实现类似的效果,但是必须设置大量的点(点越密集,越接近连续,看起来越平滑流畅),并且这种做法不能够放大(放大后,点的离散更明显)。所以在绘制 SVG 时,对路径的良好理解很重要。虽然不建议使用 XML 编辑器或文本编辑器创建复杂的路径,但了解它们的工作方式将有助于识别和修复 SVG 中的显示问题。

      -

      上一章提到过,path 元素的形状是通过属性{{ SVGAttr("d") }}定义的,属性d的值是一个 “命令 + 参数” 的序列,我们将讲解这些可用的命令,并且展示一些示例。

      +

      上一章提到过,path 元素的形状是通过属性{{ SVGAttr("d") }}定义的,属性d的值是一个“命令 + 参数”的序列,我们将讲解这些可用的命令,并且展示一些示例。

      每一个命令都用一个关键字母来表示,比如,字母“M”表示的是“Move to”命令,当解析器读到这个命令时,它就知道你是打算移动到某个点。跟在命令字母后面的,是你需要移动到的那个点的 x 和 y 轴坐标。比如移动到 (10,10) 这个点的命令,应该写成“M 10 10”。这一段字符结束后,解析器就会去读下一段命令。每一个命令都有两种表示方式,一种是用大写字母,表示采用绝对定位。另一种是用小写字母,表示采用相对定位(例如:从上一个点开始,向上移动 10px,向左移动 7px)。

      @@ -181,7 +181,7 @@

      弧形

      L 315 10" stroke="black" fill="green" stroke-width="2" fill-opacity="0.5"/> </svg> -

      如图例所示,画布上有一条对角线,中间有两个椭圆弧被对角线切开 (x radius = 30, y radius = 50)。第一个椭圆弧的 x-axis-rotation(x 轴旋转角度)是 0,所以弧形所在的椭圆是正置的(没有倾斜)。在第二个椭圆弧中,x-axis-rotation 设置为-45,所以这是一个旋转了 45 度的椭圆,并以短轴为分割线,形成了两个对称的弧形。参看图示中的第二个椭圆形。

      +

      如图例所示,画布上有一条对角线,中间有两个椭圆弧被对角线切开 (x radius = 30, y radius = 50)。第一个椭圆弧的 x-axis-rotation(x 轴旋转角度)是 0,所以弧形所在的椭圆是正置的(没有倾斜)。在第二个椭圆弧中,x-axis-rotation 设置为 -45,所以这是一个旋转了 45 度的椭圆,并以短轴为分割线,形成了两个对称的弧形。参看图示中的第二个椭圆形。

      对于上图没有旋转的椭圆,只有 2 种弧形可以选择,不是 4 种,因为两点连线(也就是对角线)正好穿过了椭圆的中心。像下面这张图,就是普通的情况,可以画出两个椭圆,四种弧。

      diff --git a/files/zh-cn/web/svg/tutorial/svg_and_css/index.html b/files/zh-cn/web/svg/tutorial/svg_and_css/index.html index eb49b074780374..88f3bbbdda2e50 100644 --- a/files/zh-cn/web/svg/tutorial/svg_and_css/index.html +++ b/files/zh-cn/web/svg/tutorial/svg_and_css/index.html @@ -11,7 +11,7 @@

      这是 CSS 教程 第二部分的第二节
      前一节:JavaScript
      下一节:XML data

      -

      信息: SVG

      +

      信息:SVG

      SVG (Scalable Vector Graphics) 是一个基于 XML 的图形描述语言。

      它可以用于描述静态图、动画,以及用户界面。

      和其他基于 XML 的语言一样,SVG 支持用 CSS 样式表将图形内容和图形样式分离。

      @@ -22,7 +22,7 @@

      信息: SVG

    diff --git a/files/zh-cn/web/web_components/index.html b/files/zh-cn/web/web_components/index.html index 3304255b7673a6..564b036c3ca45c 100644 --- a/files/zh-cn/web/web_components/index.html +++ b/files/zh-cn/web/web_components/index.html @@ -26,7 +26,7 @@

    概念和使用

    1. 创建一个类或函数来指定 web 组件的功能,如果使用类,请使用 ECMAScript 2015 的类语法 (参阅获取更多信息)。
    2. -
    3. 使用 {{domxref("CustomElementRegistry.define()")}} 方法注册您的新自定义元素 ,并向其传递要定义的元素名称、指定元素功能的类、以及可选的其所继承自的元素。
    4. +
    5. 使用 {{domxref("CustomElementRegistry.define()")}} 方法注册您的新自定义元素,并向其传递要定义的元素名称、指定元素功能的类、以及可选的其所继承自的元素。
    6. 如果需要的话,使用{{domxref("Element.attachShadow()")}} 方法将一个 shadow DOM 附加到自定义元素上。使用通常的 DOM 方法向 shadow DOM 中添加子元素、事件监听器等等。
    7. 如果需要的话,使用 {{htmlelement("template")}} 和{{htmlelement("slot")}} 定义一个 HTML 模板。再次使用常规 DOM 方法克隆模板并将其附加到您的 shadow DOM 中。
    8. 在页面任何您喜欢的位置使用自定义元素,就像使用常规 HTML 元素那样。
    9. @@ -79,9 +79,9 @@

      Custom elements

      与自定义元素特别相关的伪类:
      • {{cssxref(":defined")}}: 匹配任何已定义的元素,包括内置元素和使用CustomElementRegistry.define()定义的自定义元素。
      • -
      • {{cssxref(":host")}}: 选择 shadow DOM 的 shadow host ,内容是它内部使用的 CSS( containing the CSS it is used inside )。
      • -
      • {{cssxref(":host()")}}: 选择 shadow DOM 的 shadow host ,内容是它内部使用的 CSS(这样您可以从 shadow DOM 内部选择自定义元素)— 但只匹配给定方法的选择器的 shadow host 元素。
      • -
      • {{cssxref(":host-context()")}}: 选择 shadow DOM 的 shadow host ,内容是它内部使用的 CSS(这样您可以从 shadow DOM 内部选择自定义元素)— 但只匹配给定方法的选择器匹配元素的子 shadow host 元素。
      • +
      • {{cssxref(":host")}}: 选择 shadow DOM 的 shadow host,内容是它内部使用的 CSS(containing the CSS it is used inside)。
      • +
      • {{cssxref(":host()")}}: 选择 shadow DOM 的 shadow host,内容是它内部使用的 CSS(这样您可以从 shadow DOM 内部选择自定义元素)— 但只匹配给定方法的选择器的 shadow host 元素。
      • +
      • {{cssxref(":host-context()")}}: 选择 shadow DOM 的 shadow host,内容是它内部使用的 CSS(这样您可以从 shadow DOM 内部选择自定义元素)— 但只匹配给定方法的选择器匹配元素的子 shadow host 元素。
      diff --git a/files/zh-cn/web/web_components/using_shadow_dom/index.html b/files/zh-cn/web/web_components/using_shadow_dom/index.html index c241da91771202..9eb0480bf33e15 100644 --- a/files/zh-cn/web/web_components/using_shadow_dom/index.html +++ b/files/zh-cn/web/web_components/using_shadow_dom/index.html @@ -209,7 +209,7 @@

      使用外部引入的样式

      shadow.appendChild(linkElem); -

      请注意, 因为{{htmlelement("link")}} 元素不会打断 shadow root 的绘制,因此在加载样式表时可能会出现未添加样式内容(FOUC),导致闪烁。

      +

      请注意,因为{{htmlelement("link")}} 元素不会打断 shadow root 的绘制,因此在加载样式表时可能会出现未添加样式内容(FOUC),导致闪烁。

      许多现代浏览器都对从公共节点克隆的或具有相同文本的{{htmlelement("style")}} 标签实现了优化,以允许它们共享单个支持样式表,通过这种优化,外部和内部样式的性能表现比较接近。

      diff --git a/files/zh-cn/web/web_components/using_templates_and_slots/index.html b/files/zh-cn/web/web_components/using_templates_and_slots/index.html index 823d2b31ea1046..63c6715669acc1 100644 --- a/files/zh-cn/web/web_components/using_templates_and_slots/index.html +++ b/files/zh-cn/web/web_components/using_templates_and_slots/index.html @@ -15,7 +15,7 @@

      关于模板 (Templates)

      -

      当您必须在网页上重复使用相同的标记结构时,使用某种模板而不是一遍又一遍地重复相同的结构是有意义的。以前这是可行的,但 HTML {{htmlelement("template")}} 元素使它更容易实现 (这在现代浏览器中得到了很好的支持)。 此元素及其内容不会在 DOM 中呈现,但仍可使用 JavaScript 去引用它。

      +

      当您必须在网页上重复使用相同的标记结构时,使用某种模板而不是一遍又一遍地重复相同的结构是有意义的。以前这是可行的,但 HTML {{htmlelement("template")}} 元素使它更容易实现 (这在现代浏览器中得到了很好的支持)。此元素及其内容不会在 DOM 中呈现,但仍可使用 JavaScript 去引用它。

      让我们看一个简单的示例:

      @@ -23,7 +23,7 @@

      关于模板 (Templates)

      <p>My paragraph</p> </template> -

      上面的代码不会展示在你的页面中,直到你用 JavaScript 获取它的引用,然后添加到 DOM 中, 如下面的代码:

      +

      上面的代码不会展示在你的页面中,直到你用 JavaScript 获取它的引用,然后添加到 DOM 中,如下面的代码:

      let template = document.getElementById('my-paragraph');
       let templateContent = template.content;
      @@ -86,7 +86,7 @@ 

      使用槽 (slots) 添加灵活度

      如果在标记中包含元素时未定义相关的插槽内容,或者浏览器不支持 slot 属性,则<my-paragraph>仅包含后备内容"My default text"。(译者注:此处的意思是使用<my-paragraph>时内部不包裹任何内容时会显示 slot 定义好的默认值。具体使用可参考下面)

      -

      要定义插槽内容,我们在<my-paragraph>元素内包括一个 HTML 结构,该结构具有{{htmlattrxref("slot")}}属性,其值等于我们要填充的{{htmlelement("slot")}}的 name 属性的值。 和以前一样,它可以是您喜欢的任何东西,例如:

      +

      要定义插槽内容,我们在<my-paragraph>元素内包括一个 HTML 结构,该结构具有{{htmlattrxref("slot")}}属性,其值等于我们要填充的{{htmlelement("slot")}}的 name 属性的值。和以前一样,它可以是您喜欢的任何东西,例如:

      <my-paragraph>
         <span slot="my-text">Let's have some different text!</span>
      diff --git a/files/zh-cn/web/xml/xml_introduction/index.html b/files/zh-cn/web/xml/xml_introduction/index.html
      index 4c0f284e5e908b..017e6668120d94 100644
      --- a/files/zh-cn/web/xml/xml_introduction/index.html
      +++ b/files/zh-cn/web/xml/xml_introduction/index.html
      @@ -8,7 +8,7 @@
         - 初学者
       translation_of: Web/XML/XML_introduction
       ---
      -

      Summary: This article introduces the 'eXtensible Markup Language' (XML) and tells of it's uses.XML (Extensible Markup Language)  是一种类似于  {{Glossary("HTML")}} 的标记语言,但是 XML 没有使用预定义的标记。因此,您可以根据自己的设计需求定义专属于您的标记。这是一种十分有用的可存储、可搜索和可共享的格式存储数据的方法。最重要的是,因为 XML 的基本格式是标准化的,所以如果您跨系统或平台共享或传输 XML ,无论是在本地还是在互联网上,接收方仍然可以根据标准化的 XML 语法解析数据。

      +

      Summary: This article introduces the 'eXtensible Markup Language' (XML) and tells of it's uses.XML (Extensible Markup Language)  是一种类似于  {{Glossary("HTML")}} 的标记语言,但是 XML 没有使用预定义的标记。因此,您可以根据自己的设计需求定义专属于您的标记。这是一种十分有用的可存储、可搜索和可共享的格式存储数据的方法。最重要的是,因为 XML 的基本格式是标准化的,所以如果您跨系统或平台共享或传输 XML,无论是在本地还是在互联网上,接收方仍然可以根据标准化的 XML 语法解析数据。

      有许多基于 XML 的语言;一些示例是  XHTMLMathMLSVGXULXBLRSS, 和 RDF。你也可以创建自己的。

      diff --git a/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.html b/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.html index 6aeae6210094f5..f2659c2b5ff0be 100644 --- a/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.html +++ b/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.html @@ -207,7 +207,7 @@

      ANY_TYPE 常量

      它可以是任何简单类型(NUMBER_TYPESTRING_TYPEBOOLEAN_TYPE ),如果返回的结果类型是节点集,那么它将是一个 UNORDERED_NODE_ITERATOR_TYPE

      -

      要在评估后确定类型,我们使用 XPathResult 对象的 resultType 属性。此属性的常量值在附录中定义。 None Yet =====Any_Type Example===== <pre> </pre>

      +

      要在评估后确定类型,我们使用 XPathResult 对象的 resultType 属性。此属性的常量值在附录中定义。None Yet =====Any_Type Example===== <pre> </pre>

      示例

      @@ -215,7 +215,7 @@

      在 HTML 文档

      以下代码旨在放置在要针对其评估 XPath 表达式的 HTML 文档中内嵌或外链的任何 JavaScript 片段中。

      -

      要使用 XPath 提取 HTML 文档中的所有 <h2> 标题元素,xpathExpression 只是 //h2。其中,// 是递归下降运算符,在文档树中的任何位置将元素与 nodeName h2 相匹配。这个的完整代码是: link to introductory xpath doc

      +

      要使用 XPath 提取 HTML 文档中的所有 <h2> 标题元素,xpathExpression 只是 //h2。其中,// 是递归下降运算符,在文档树中的任何位置将元素与 nodeName h2 相匹配。这个的完整代码是:link to introductory xpath doc

      var headings = document.evaluate('//h2', document, null, XPathResult.ANY_TYPE, null );
       
      @@ -308,7 +308,7 @@

      实现用户定义的命名

      为 XML 文档实现默认命名空间

      -

      如前面实现默认命名空间解析器中所述,默认解析器不处理 XML 文档的默认命名空间。 例如使用本文档:

      +

      如前面实现默认命名空间解析器中所述,默认解析器不处理 XML 文档的默认命名空间。例如使用本文档:

      <?xml version="1.0" encoding="UTF-8"?>
       <feed xmlns="http://www.w3.org/2005/Atom">
      
    -

    在这个教程编写的时间点 (2011 中旬),绝大多数现代浏览器都对 SVG 有基本的支持。其中包括 Internet Explorer 9 及其后续版本。一些 SVG 特性只被某些浏览器支持。参见 SVG tables on caniuse.com 了解支持情况。 参见 SVG element reference 了解兼容情况。

    +

    在这个教程编写的时间点 (2011 中旬),绝大多数现代浏览器都对 SVG 有基本的支持。其中包括 Internet Explorer 9 及其后续版本。一些 SVG 特性只被某些浏览器支持。参见 SVG tables on caniuse.com 了解支持情况。参见 SVG element reference 了解兼容情况。

    通过安装 Adobe 提供的插件,你可以让某些浏览器支持 SVG。

    欲在 Mozilla 了解更多关于 SVG 的信息,参考 这里 SVG